Spec-Zone.ru › Ruby on Rails 8.0

модуль ActiveStorage::Streaming

Включенные модули:
ActionController::DataStreaming, ActionController::Live

Константы

DEFAULT_BLOB_STREAMING_DISPOSITION

Закрытые методы экземпляра

send_blob_stream(blob, disposition: nil) Показать исходный код
# File activestorage/app/controllers/concerns/active_storage/streaming.rb, line 56
def send_blob_stream(blob, disposition: nil) # :doc:
  send_stream(
      filename: blob.filename.sanitized,
      disposition: blob.forced_disposition_for_serving || disposition || DEFAULT_BLOB_STREAMING_DISPOSITION,
      type: blob.content_type_for_serving) do |stream|
    blob.download do |chunk|
      stream.write chunk
    end
  rescue ActiveStorage::FileNotFoundError
    expires_now
    head :not_found
  rescue
    # Status and caching headers are already set, but not committed.
    # Change the status to 500 manually.
    expires_now
    head :internal_server_error
    raise
  end
end

Выводить содержимое объекта blob из хранилища напрямую в ответ. Тип и имя файла устанавливаются напрямую из объекта blob. Назначение можно контролировать, задавая disposition.

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

Spec-Zone.ru

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