API для хранения файлов¶
Getting the default storage class¶
Django provides convenient ways to access the default storage class:
- 
class DefaultStorage[исходный код]¶
- DefaultStorageобеспечивает ленивый доступ к текущей системе хранения по умолчанию, определенной- DEFAULT_FILE_STORAGE.- DefaultStorageиспользует- get_storage_class()внутренне.
- 
default_storage¶
- default_storageявляется экземпляром- DefaultStorage.
- 
get_storage_class(import_path=None)[исходный код]¶
- Возвращает класс или модуль, реализующий API хранилища. - При вызове без параметра - import_path- get_storage_classвернет текущую систему хранения по умолчанию, определенную- DEFAULT_FILE_STORAGE. Если указан параметр- import_path,- get_storage_classпопытается импортировать класс или модуль из указанного пути и вернет его в случае успеха. При неудачном импорте будет вызвано исключение.
Класс FileSystemStorage¶
- 
class FileSystemStorage(location=None, base_url=None, file_permissions_mode=None, directory_permissions_mode=None)[исходный код]¶
- Класс - FileSystemStorageреализует базовое хранение файлов в локальной файловой системе. Он наследуется от- Storageи обеспечивает реализацию всех его публичных методов.- 
location¶
- Абсолютный путь к директории, в которой будут храниться файлы. По умолчанию равен значению вашей настройки - MEDIA_ROOT.
 - 
base_url¶
- URL, который обслуживает файлы, хранящиеся в этом месте. По умолчанию соответствует значению вашей настройки - MEDIA_URL.
 - 
file_permissions_mode¶
- Разрешения файловой системы, которые получит файл при сохранении. По умолчанию - FILE_UPLOAD_PERMISSIONS.
 - 
directory_permissions_mode¶
- Разрешения файловой системы, которые получит каталог при сохранении. По умолчанию - FILE_UPLOAD_DIRECTORY_PERMISSIONS.
 - Примечание - Метод - FileSystemStorage.delete()не вызовет исключения, если заданное имя файла не существует.- 
get_created_time(name)[исходный код]¶
- Возвращает - datetimeсистемное время ctime, т.е.- os.path.getctime(). В некоторых системах (например, Unix) это время последнего изменения метаданных, а в других (например, Windows) - время создания файла.
 
- 
Класс Storage¶
- 
class Storage[исходный код]¶
- Класс - Storageпредоставляет стандартизированный API для хранения файлов, а также набор стандартных моделей поведения, которые все другие системы хранения могут наследовать или переопределять по мере необходимости.- Примечание - Когда методы возвращают наивные - datetimeобъекты, используемым эффективным часовым поясом будет текущее значение- os.environ['TZ']; обратите внимание, что оно обычно устанавливается из- TIME_ZONEDjango.- 
delete(name)[исходный код]¶
- Deletes the file referenced by - name. If deletion is not supported on the target storage system this will raise- NotImplementedErrorinstead.
 - 
exists(name)[исходный код]¶
- Возвращает - True, если файл, на который ссылается данное имя, уже существует в системе хранения, или- False, если имя доступно для нового файла.
 - 
get_accessed_time(name)[исходный код]¶
- Возвращает - datetimeвремя последнего обращения к файлу. Для систем хранения, не способных вернуть время последнего доступа, это значение будет равно- NotImplementedError.- Если - USE_TZравно- True, то возвращается осознанное- datetime, иначе возвращается наивное- datetimeв местном часовом поясе.
 - 
get_alternative_name(file_root, file_ext)[исходный код]¶
- Возвращает альтернативное имя файла, основанное на параметрах - file_rootи- file_ext, к имени файла добавляется символ подчеркивания плюс случайная алфавитно-цифровая строка из 7 символов перед расширением.
 - 
get_available_name(name, max_length=None)[исходный код]¶
- Возвращает имя файла на основе параметра - name, который свободен и доступен для записи нового содержимого на целевой системе хранения.- Длина имени файла не должна превышать - max_length, если оно предоставлено. Если свободное уникальное имя файла не может быть найдено, будет выдано исключение- SuspiciousFileOperation.- Если файл с именем - nameуже существует, вызывается- get_alternative_name()для получения альтернативного имени.
 - 
get_created_time(name)[исходный код]¶
- Возвращает - datetimeвремени создания файла. Для систем хранения, не способных вернуть время создания, это значение будет равно- NotImplementedError.- Если - USE_TZравно- True, то возвращается осознанное- datetime, иначе возвращается наивное- datetimeв местном часовом поясе.
 - 
get_modified_time(name)[исходный код]¶
- Возвращает - datetimeвремя последнего изменения файла. Для систем хранения, не способных вернуть время последнего изменения, это значение будет равно- NotImplementedError.- Если - USE_TZравно- True, то возвращается осознанное- datetime, иначе возвращается наивное- datetimeв местном часовом поясе.
 - 
get_valid_name(name)[исходный код]¶
- Возвращает имя файла, основанное на параметре - name, которое подходит для использования на целевой системе хранения данных.
 - 
generate_filename(filename)[исходный код]¶
- Проверяет - filenameвызовом- get_valid_name()и возвращает имя файла для передачи в метод- save().- Аргумент - filenameможет включать путь, возвращаемый- FileField.upload_to. В этом случае путь не будет передан в- get_valid_name(), а будет добавлен обратно к результирующему имени.- Реализация по умолчанию использует операции - os.path. Переопределите этот метод, если это не подходит для вашего хранилища.
 - 
listdir(path)[исходный код]¶
- Перечисляет содержимое указанного пути, возвращая кортеж из двух списков: первый элемент - каталоги, второй - файлы. Для систем хранения, которые не могут предоставить такой список, вместо этого будет выдано сообщение - NotImplementedError.
 - 
open(name, mode='rb')[исходный код]¶
- Открывает файл, указанный - name. Обратите внимание, что хотя возвращаемый файл гарантированно является объектом- File, на самом деле это может быть какой-то подкласс. В случае удаленного хранения файлов это означает, что чтение/запись могут быть довольно медленными, поэтому будьте внимательны.
 - 
path(name)[исходный код]¶
- Путь к локальной файловой системе, где файл может быть открыт с помощью стандартной команды Python - open(). Для систем хранения, недоступных из локальной файловой системы, вместо этого будет выведено- NotImplementedError.
 - 
save(name, content, max_length=None)[исходный код]¶
- Сохраняет новый файл с помощью системы хранения, предпочтительно с указанным именем. Если файл с таким именем уже существует - name, система хранения может изменить имя файла, если это необходимо для получения уникального имени. Будет возвращено фактическое имя сохраненного файла.- Аргумент - max_lengthпередается вместе с- get_available_name().- Аргумент - contentдолжен быть экземпляром- django.core.files.Fileили файлоподобным объектом, который может быть обернут в- File.
 - 
size(name)[исходный код]¶
- Возвращает общий размер, в байтах, файла, на который ссылается - name. Для систем хранения, которые не могут вернуть размер файла, вместо этого возвращается значение- NotImplementedError.
 - 
url(name)[исходный код]¶
- Возвращает URL, по которому можно получить доступ к содержимому файла, на который ссылается - name. Для систем хранения, которые не поддерживают доступ по URL, вместо этого возвращается- NotImplementedError.
 
-