module ActiveStorage::Streaming

def send_blob_stream(blob, disposition: nil) # :doc:

:doc:
The content type and filename is set directly from the +blob+.
Stream the blob from storage directly to the response. The disposition can be controlled by setting +disposition+.
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
  end
end