Spec-Zone.ru › Django 5.1

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

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

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

storages

Экземпляры хранилища, как определены в STORAGES.

class DefaultStorage [source]

DefaultStorage обеспечивает леничный доступ к стандартной системе хранения, определённой по ключу default в STORAGES. DefaultStorage использует storages внутри.

default_storage

default_storage является экземпляром DefaultStorage.

Класс FileSystemStorage

class FileSystemStorage(location=None, base_url=None, file_permissions_mode=None, directory_permissions_mode=None, allow_overwrite=False) [source]

Класс FileSystemStorage реализует базовое хранение файлов на локальном файловом сервере. Он наследуется от Storage и предоставляет реализации для всех публичных методов.

Примечание

Метод FileSystemStorage.delete() не будет генерировать исключение, если заданный имя файла не существует.

location [source]

Абсолютный путь к каталогу, который будет содержать файлы. По умолчанию принимает значение вашего параметра MEDIA_ROOT.

base_url [source]

URL для доступа к файлам, хранящимся по этому пути. По умолчанию принимает значение вашего параметра MEDIA_URL.

file_permissions_mode [source]

Права доступа к файлам в файловой системе, которые будут присвоены файлу при сохранении. По умолчанию значение FILE_UPLOAD_PERMISSIONS.

directory_permissions_mode [source]

Права доступа к каталогам в файловой системе, которые будут присвоены каталогу при сохранении. По умолчанию значение FILE_UPLOAD_DIRECTORY_PERMISSIONS.

allow_overwrite
Добавлена в Django 5.1.

Флаг для управления возможностью перезаписи существующего файла новым. По умолчанию False.

get_created_time(name) [source]

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

Класс InMemoryStorage

class InMemoryStorage(location=None, base_url=None, file_permissions_mode=None, directory_permissions_mode=None) [source]

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

location [source]

Абсолютный путь к имени каталога, назначенного файлам. По умолчанию принимает значение вашего параметра MEDIA_ROOT.

base_url [source]

URL для доступа к файлам, хранящимся по этому пути. По умолчанию принимает значение вашего параметра MEDIA_URL.

file_permissions_mode [source]

Права доступа к файлам в файловой системе, заданные для совместимости с FileSystemStorage. По умолчанию FILE_UPLOAD_PERMISSIONS.

directory_permissions_mode [source]

Права доступа к каталогам в файловой системе, заданные для совместимости с FileSystemStorage. По умолчанию FILE_UPLOAD_DIRECTORY_PERMISSIONS.

Класс Storage

class Storage [source]

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

Примечание

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

delete(name) [source]

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

exists(name) [source]

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

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.

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/5.1/ref/files/storage/

Spec-Zone.ru

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