class ActiveStorage::Service::AzureBlobService

def stream(key)

Reads the object for the given key in chunks, yielding each to the block.
def stream(key)
  blob = blob_for(key)
  chunk_size = 5.megabytes
  offset = 0
  raise ActiveStorage::FileNotFoundError unless blob.present?
  while offset < blob.size
    chunk = client.get_blob(key, start: offset, end: offset + chunk_size - 1)
    yield chunk.force_encoding(Encoding::BINARY)
    offset += chunk_size
  end
end