Spec-Zone.ru › Ruby on Rails 5.2

класс ActiveStorage::Service

Родитель:
Объект

Абстрактный класс, служащий интерфейсом для конкретных сервисов.

Доступные сервисы:

  • Disk, для управления вложениями, сохранёнными непосредственно на жёстком диске.

  • GCS, для управления вложениями через Google Cloud Storage.

  • S3, для управления вложениями через Amazon S3.

  • AzureStorage, для управления вложениями через Microsoft Azure Storage.

  • Mirror, для возможности использования нескольких сервисов для управления вложениями.

В приложении Rails вы можете настроить свои сервисы через сгенерированный файл config/storage.yml и сослаться на один из перечисленных констант под ключом service. Например:

local:
  service: Disk
  root: <%= Rails.root.join("storage") %>

Вы можете ознакомиться с конструктором сервиса, чтобы узнать, какие ключи требуются.

Затем в конфигурации вашего приложения вы можете указать используемый сервис следующим образом:

config.active_storage.service = :local

Если вы используете Active Storage вне приложения Ruby on Rails, вы можете настроить используемый сервис следующим образом:

ActiveStorage::Blob.service = ActiveStorage::Service.configure(
  :Disk,
  root: Pathname("/foo/bar/storage")
)

Публичные методы класса

configure(service_name, configurations) Показать исходный код
# File activestorage/lib/active_storage/service.rb, line 50
def configure(service_name, configurations)
  Configurator.build(service_name, configurations)
end

Настроить сервис Active Storage по имени из набора конфигураций, обычно загружаемых из файла YAML. Движок Active Storage использует это для установки глобального сервиса Active Storage при запуске приложения.

Публичные методы экземпляра

delete(key) Показать исходный код
# File activestorage/lib/active_storage/service.rb, line 88
def delete(key)
  raise NotImplementedError
end

Удалить файл по ключу key.

delete_prefixed(prefix) Показать исходный код
# File activestorage/lib/active_storage/service.rb, line 93
def delete_prefixed(prefix)
  raise NotImplementedError
end

Удалить файлы, ключи которых начинаются с prefix.

download(key) Показать исходный код
# File activestorage/lib/active_storage/service.rb, line 78
def download(key)
  raise NotImplementedError
end

Возвращает содержимое файла по ключу key.

download_chunk(key, range) Показать исходный код
# File activestorage/lib/active_storage/service.rb, line 83
def download_chunk(key, range)
  raise NotImplementedError
end

Возвращает частичное содержимое в байтовом range файла по ключу key.

exist?(key) Показать исходный код
# File activestorage/lib/active_storage/service.rb, line 98
def exist?(key)
  raise NotImplementedError
end

Возвращает true, если файл существует по ключу key.

headers_for_direct_upload(key, filename:, content_type:, content_length:, checksum:) Показать исходный код
# File activestorage/lib/active_storage/service.rb, line 118
def headers_for_direct_upload(key, filename:, content_type:, content_length:, checksum:)
  {}
end

Возвращает Хэш заголовков для запросов url_for_direct_upload.

update_metadata(key, **metadata) Показать исходный код
# File activestorage/lib/active_storage/service.rb, line 74
def update_metadata(key, **metadata)
end

Обновить метаданные для файла, идентифицированного по ключу key в сервисе. Переопределить в подклассах только в том случае, если сервис нуждается в хранении определённых метаданных, которые должны быть обновлены при идентификации.

upload(key, io, checksum: nil, **options) Показать исходный код
# File activestorage/lib/active_storage/service.rb, line 67
def upload(key, io, checksum: nil, **options)
  raise NotImplementedError
end

Загрузить io в указанный key. Если предоставлен checksum, сервис обеспечит соответствие после завершения загрузки или вызовет ActiveStorage::IntegrityError.

url(key, expires_in:, disposition:, filename:, content_type:) Показать исходный код
# File activestorage/lib/active_storage/service.rb, line 105
def url(key, expires_in:, disposition:, filename:, content_type:)
  raise NotImplementedError
end

Возвращает подписанную временную ссылку для файла по ключу key. Ссылка будет действительна в течение указанного количества секунд в expires_in. Вы также должны предоставить disposition (:inline или :attachment), filename и content_type, с которыми вы хотите, чтобы файл обслуживался по запросу.

url_for_direct_upload(key, expires_in:, content_type:, content_length:, checksum:) Показать исходный код
# File activestorage/lib/active_storage/service.rb, line 113
def url_for_direct_upload(key, expires_in:, content_type:, content_length:, checksum:)
  raise NotImplementedError
end

Возвращает подписанную временную ссылку, по которой можно выполнить PUT запрос на прямой загрузку файла в key. Ссылка будет действительна в течение указанного количества секунд в expires_in. Вы должны также указать content_type, content_length и checksum загружаемого файла. Все эти атрибуты будут проверены сервисом при загрузке.

© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

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