Spec-Zone.ru › Django 4.1

API хранилища файлов

Получение текущего класса хранилища

Django предоставляет два удобных способа доступа к текущему классу хранилища:

class DefaultStorage [source]

DefaultStorage обеспечивает ленивый доступ к текущей системе хранения по умолчанию, определенной в DEFAULT_FILE_STORAGE. DefaultStorage использует get_storage_class() внутренне.

get_storage_class(import_path=None) [source]

Возвращает класс или модуль, реализующий 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) [source]

Класс 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) [source]

Возвращает datetime системного времени ctime, т.е. os.path.getctime(). На некоторых системах (например, Unix) это время последнего изменения метаданных, а на других (например, Windows) – время создания файла.

Класс Storage

class Storage [source]

Класс Storage предоставляет стандартизированный API для хранения файлов, а также набор стандартных действий, которые другие системы хранения могут наследовать или переопределять по мере необходимости.

Примечание

Когда методы возвращают объекты datetime без учета часового пояса, используемый эффективный часовой пояс будет текущим значением os.environ['TZ']; обратите внимание, что это обычно устанавливается из настроек Django TIME_ZONE.

delete(name) [source]

Удаляет файл, на который ссылается name. Если удаление не поддерживается целевой системой хранения, это вызовет NotImplementedError.

exists(name) [source]

Возвращает True , если файл с указанным именем уже существует в системе хранения, или False , если имя доступно для нового файла.

get_accessed_time(name) [source]

Возвращает datetime последнего времени доступа к файлу. Для систем хранения, не способных вернуть время последнего доступа, будет выброшено исключение NotImplementedError.

Если USE_TZ равно True, возвращает осознанный datetime, в противном случае возвращает наивный datetime в местном часовом поясе.

get_alternative_name(file_root, file_ext) [source]

Возвращает альтернативное имя файла, основанное на параметрах file_root и file_ext, к имени файла перед расширением добавляется знак подчеркивания и случайная 7-символьная строка из букв и цифр.

get_available_name(name, max_length=None) [source]

Возвращает имя файла, основанное на параметре name, которое свободно и доступно для записи нового содержимого в целевой системе хранения.

Длина имени файла не будет превышать max_length, если предоставлено. Если уникальное свободное имя файла не может быть найдено, будет поднято исключение SuspiciousFileOperation.

Если файл с name уже существует, вызывается get_alternative_name() для получения альтернативного имени.

get_created_time(name) [source]

Возвращает datetime времени создания файла. Для систем хранения, не способных вернуть время создания, будет выброшено исключение NotImplementedError.

Если USE_TZ равно True, возвращает осознанный datetime, в противном случае возвращает наивный datetime в местном часовом поясе.

get_modified_time(name) [source]

Возвращает datetime последнего времени изменения файла. Для систем хранения, не способных вернуть последнее время изменения, будет выброшено исключение NotImplementedError.

Если USE_TZ равно True, возвращает осознанный datetime, в противном случае возвращает наивный datetime в местном часовом поясе.

get_valid_name(name) [source]

Возвращает имя файла, основанное на параметре name, подходящее для использования в целевой системе хранения.

generate_filename(filename) [source]

Проверяет filename, вызывая get_valid_name(), и возвращает имя файла, которое будет передано методу save().

Аргумент filename может включать путь, возвращаемый FileField.upload_to. В этом случае путь не будет передан get_valid_name(), но будет добавлен в начало результирующего имени.

Стандартная реализация использует операции os.path. Переопределите этот метод, если это не подходит для вашего хранилища.

listdir(path) [source]

Отображает содержимое указанного пути, возвращая кортеж из двух списков; первый элемент — каталоги, второй — файлы. Для систем хранения, которые не могут предоставить такой список, будет выброшено исключение NotImplementedError.

open(name, mode='rb') [source]

Открывает файл, заданный name. Обратите внимание, что хотя возвращаемый файл гарантированно является объектом File, он фактически может быть его подклассом. В случае удаленного хранения файлов это означает, что чтение/запись может быть довольно медленным, поэтому будьте осторожны.

path(name) [source]

Локальный путь к файлу, где его можно открыть с помощью стандартных open() Python. Для систем хранения, недоступных из локальной файловой системы, будет выброшено исключение NotImplementedError.

save(name, content, max_length=None) [source]

Сохраняет новый файл с использованием системы хранения, предпочтительно с указанным именем. Если файл с этим именем name уже существует, система хранения может изменить имя файла по мере необходимости, чтобы получить уникальное имя. Возвращается фактическое имя сохраненного файла.

Аргумент max_length передается в get_available_name().

Аргумент content должен быть экземпляром django.core.files.File или объектом-подобным файлу, который может быть обернут в File.

END_OF_DOCUMENT_MARKER
size(name) [source]

Возвращает общий размер файла, указанного в name, в байтах. Для систем хранения, которые не могут вернуть размер файла, это вызовет NotImplementedError вместо этого.

url(name) [source]

Возвращает URL, по которому можно получить доступ к содержимому файла, указанного в name. Для систем хранения, которые не поддерживают доступ по URL, это вызовет NotImplementedError вместо этого.

© Django Software Foundation and individual contributors
Licensed under the BSD License.
https://docs.djangoproject.com/en/4.1/ref/files/storage/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API