Method: ActiveStorage::Service::S3Service#download

Defined in:
activestorage/lib/active_storage/service/s3_service.rb

#download(key, &block) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'activestorage/lib/active_storage/service/s3_service.rb', line 40

def download(key, &block)
  if block_given?
    instrument :streaming_download, key: key do
      stream(key, &block)
    end
  else
    instrument :download, key: key do
      object_for(key).get.body.string.force_encoding(Encoding::BINARY)
    rescue Aws::S3::Errors::NoSuchKey
      raise ActiveStorage::FileNotFoundError
    end
  end
end