Spec-Zone.ru › Django 2.0

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's 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]

Локальный путь к файлу, где его можно открыть с помощью стандартной функции Python open(). Для систем хранения, недоступных из локальной файловой системы, будет поднято исключение 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.0/ref/files/storage/

Spec-Zone.ru

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