Spec-Zone.ru › Django 2.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 времени создания, т. е. 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_available_name(name, max_length=None) [source]

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

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

Если файл с именем name уже существует, перед расширением к имени файла добавляется символ подчеркивания и случайная 7-символьная буквенно-цифровая строка.

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

Spec-Zone.ru

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