Вы здесь

Storage API

Хранение данных.

Модуль Storage API является фреймворком для файловых хранилищ и обслуживания потоков промышленного уровня. Он обладает следующими характеристиками:

  • Сменная архитектура: может быть настроен для работы с любой CDN
  • Избыточность: может быть настроен для хранения файлов в нескольких CDN и мгновенно менять их. Это означает, при выходе из строя одной из CDN, доступность данных вашего сайта не пострадает
  • API управления доступом: может использоваться в электронной коммерции
  • Дедупликация: когда идентичные файлы хранятся в одном контейнере, то будет создаваться только одна копия. Это сократит трафик и освободит хранилище

В Друпале 7, модуль можно использовать для хранения данных полей File и Image.

Хранение данных

  • Файловая система: файлы хранятся в локальной папке и обслуживаются через любой HTTP или FTP сервис запущенный на сервере
  • База данных: файлы хранятся в базе данных и обслуживаются через Друпал
  • FTP: файлы загружаются в папку через FTP. Для обслуживания файлов может быть установлен префикс URL
  • Amazon S3/CloudFront: файлы загружаются на сервис Amazon S3. Обслуживание управляется через S3 или CloudFront. Поддерживаются медиапотоки и временные криптографические URL
  • Rackspace Cloud Files: файлы обслуживаются через Limelight Network CDN

Контейнеры и классы

Контейнеры создаются управляющим сайтом и в них хранятся файлы. Каждый контейнер является единицей обслуживания, в нём хранится информация, которая описывает определённые параметры обслуживания файлов. Для локального хранилища это локальный путь, для Amazon S3 это полномочия и название «bucket» и так далее.

Классы тоже создаются управляющим сайтом. Класс содержит любое количество контейнеров и контейнеры одного класса имеют установленный между собой приоритет. Ближние к клиенту контейнеры находятся вверху, ближние к серверу, находятся внизу.

Модули, использующие Storage API, могут добавлять различные классы, которые используются для файлов, имеющих различные цели использования. Например, некоторые файлы могут нуждаться в резервировании по FTP, в то время как другие могут восстанавливаться на лету.

Первоначально, файлы сохраняются в контейнере с низким приоритетом (ближним к серверу). В процессе работы cron, Storage API пытается размножить файлы в каждый контейнер класса. Файлы получаются из контейнера с наивысшим приоритетом, который содержит нужный файл.