module ActiveStorage::Streaming
Inherits From
-
module
ActionController::DataStreaming -
module
ActionController::Live
Constants
Private instance methods
Stream the blob from storage directly to the response. The disposition can be controlled by setting disposition. The content type and filename is set directly from the blob.
Source code GitHub
# 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