Spec-Zone.ru › Django 1.11

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.

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.

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

Spec-Zone.ru

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