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