Spec-Zone.ru › Ruby on Rails 6.0

класс 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 48
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 90
def delete(key)
  raise NotImplementedError
end

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

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

Удалите файлы с ключами, начинающимися с префикса prefix.

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

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

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

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

exist?(key) Показать исходный код
# File activestorage/lib/active_storage/service.rb, line 100
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 120
def headers_for_direct_upload(key, filename:, content_type:, content_length:, checksum:)
  {}
end

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

open(*args, &block) Показать исходный код
# File activestorage/lib/active_storage/service.rb, line 85
def open(*args, &block)
  ActiveStorage::Downloader.new(self).open(*args, &block)
end
update_metadata(key, **metadata) Показать исходный код
# File activestorage/lib/active_storage/service.rb, line 72
def update_metadata(key, **metadata)
end

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

upload(key, io, checksum: nil, **options) Показать исходный код
# File activestorage/lib/active_storage/service.rb, line 65
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 107
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 115
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–2019 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

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