модуль ActiveStorage::Streaming
Константы
- DEFAULT_BLOB_STREAMING_DISPOSITION
Закрытые методы экземпляра
# 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.