Spec-Zone.ru › Ruby on Rails 6.1

класс ActiveStorage::Preview

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

Некоторые не-изображения могут быть представлены в виде предварительного просмотра: то есть, они могут быть представлены как изображения. Предварительный просмотр видео-объекта может быть получен путем извлечения первого кадра, а предварительный просмотр PDF-объекта — путем извлечения первой страницы.

Предварительный просмотр извлекает предварительное изображение из объекта. Active Storage предоставляет предварительные просмотры для видео и PDF-файлов. ActiveStorage::Previewer::VideoPreviewer используется для видео, а ActiveStorage::Previewer::PopplerPDFPreviewer и ActiveStorage::Previewer::MuPDFPreviewer используются для PDF-файлов. Настройте пользовательские предварительные просмотры, наследуя от ActiveStorage::Previewer и реализуйте необходимые методы. Обратитесь к документации ActiveStorage::Previewer для получения более подробной информации о требованиях к предварительным просмотрам.

Для выбора предварительного просмотра для объекта Active Storage вызывает accept? для каждого зарегистрированного предварительного просмотра по порядку. Он использует первый предварительный просмотр, для которого accept? возвращает true, когда получает объект. В приложении Rails добавьте или удалите предварительные просмотры, изменяя Rails.application.config.active_storage.previewers в файле инициализации:

Rails.application.config.active_storage.previewers
# => [ ActiveStorage::Previewer::PopplerPDFPreviewer, ActiveStorage::Previewer::MuPDFPreviewer, ActiveStorage::Previewer::VideoPreviewer ]

# Add a custom previewer for Microsoft Office documents:
Rails.application.config.active_storage.previewers << DOCXPreviewer
# => [ ActiveStorage::Previewer::PopplerPDFPreviewer, ActiveStorage::Previewer::MuPDFPreviewer, ActiveStorage::Previewer::VideoPreviewer, DOCXPreviewer ]

Вне приложения Rails измените ActiveStorage.previewers.

Встроенные предварительные просмотры полагаются на сторонние библиотеки системы. В частности, встроенный предварительный просмотр видео требует FFmpeg. Предоставляются два предварительных просмотра PDF: один требует Poppler, а другой требует muPDF (версия 1.8 или более поздняя). Для предварительного просмотра PDF установите либо Poppler, либо muPDF.

Эти библиотеки не предоставляются Rails. Вы должны установить их самостоятельно, чтобы использовать встроенные предварительные просмотры. Перед установкой и использованием стороннего программного обеспечения убедитесь, что вы понимаете лицензионные последствия этого.

Атрибуты

blob[R]
variation[R]

Общедоступные методы класса

new(blob, variation_or_variation_key) Показать исходный код
# File activestorage/app/models/active_storage/preview.rb, line 36
def initialize(blob, variation_or_variation_key)
  @blob, @variation = blob, ActiveStorage::Variation.wrap(variation_or_variation_key)
end

Общедоступные методы экземпляра

download(&block) Показать исходный код
# File activestorage/app/models/active_storage/preview.rb, line 81
def download(&block)
  if processed?
    variant.download(&block)
  else
    raise UnprocessedError
  end
end
image() Показать исходный код
# File activestorage/app/models/active_storage/preview.rb, line 52
def image
  blob.preview_image
end

Возвращает прикреплённое предварительное изображение объекта.

key() Показать исходный код
# File activestorage/app/models/active_storage/preview.rb, line 73
def key
  if processed?
    variant.key
  else
    raise UnprocessedError
  end
end

Возвращает комбинированный ключ объекта и варианта, вместе идентифицирующий конкретную разновидность.

processed() Показать исходный код
# File activestorage/app/models/active_storage/preview.rb, line 46
def processed
  process unless processed?
  self
end

Обрабатывает предварительный просмотр, если он ещё не обработан. Для удобства возвращает текущий экземпляр Preview:

blob.preview(resize_to_limit: [100, 100]).processed.url

Обработка предварительного просмотра генерирует изображение из его объекта и прикрепляет предварительное изображение к объекту. Поскольку предварительное изображение хранится вместе с объектом, оно генерируется только один раз.

service_url(**options)
Псевдоним для: url
url(**options) Показать исходный код
# File activestorage/app/models/active_storage/preview.rb, line 61
def url(**options)
  if processed?
    variant.url(**options)
  else
    raise UnprocessedError
  end
end

Возвращает URL варианта предварительного просмотра на сервисе. Вызывает исключение ActiveStorage::Preview::UnprocessedError, если предварительный просмотр ещё не обработан.

Этот метод синхронно обрабатывает вариант предварительного изображения, поэтому не вызывайте его в представлении. Вместо этого, сгенерируйте стабильный URL, который перенаправляет на URL, возвращаемый этим методом.

Также алиас: service_url

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

Spec-Zone.ru

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