Spec-Zone.ru › Django 1.10

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() не будет генерировать исключение, если указанного файла не существует.

Класс Storage

class Storage [source]
END_OF_DOCUMENT_MARKER

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

Примечание

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

accessed_time(name) [source]

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

Устарело начиная с версии 1.10: Используйте get_accessed_time() вместо этого.

created_time(name) [source]

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

Устарело начиная с версии 1.10: Используйте get_created_time() вместо этого.

delete(name) [source]

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

exists(name) [source]

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

get_accessed_time(name) [source]
Новое в Django 1.10.

Возвращает 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]
Новое в Django 1.10.

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

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

get_modified_time(name) [source]
Новое в Django 1.10.

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

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

get_valid_name(name) [source]

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

generate_filename(filename) [source]
Новое в Django 1.10.

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

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

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

listdir(path) [source]

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

modified_time(name) [source]

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

Устарело начиная с версии 1.10: Используйте get_modified_time() вместо этого.

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

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

path(name) [source]

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

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

Spec-Zone.ru

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