Methods

Included Modules

Constants

DEFAULT_BLOB_STREAMING_DISPOSITION = "inline"

Instance Private methods

send_blob_stream(blob, disposition: nil)

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
# 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
🔎 See on GitHub