Подтвердить что ты не робот

Загрузка изображения на S3 с помощью aws-sdk v2

У меня чертовски время работает с документацией aws-sdk, все ссылки, которые я следую, выглядят устаревшими и непригодными для использования.

Я ищу пример прямой реализации загрузки файла изображения в ведро S3 в Ruby.

  • скажем, что путь изображения screenshots/image.png
  • и я хочу загрузить его в ведро my_bucket
  • AWS creds живет в моей ENV

Любые советы очень ценятся.

4b9b3361

Ответ 1

Вот как вы можете загружать файл с диска в названное ведро и ключ:

s3 = Aws::S3::Resource.new
s3.bucket('my_bucket').object('key').upload_file('screenshots/image.png')

Это самый простой метод. Вы должны заменить "ключ" на ключ, который вы хотите сохранить в Amazon S3. Это автоматически загрузит большие файлы для вас, используя API-интерфейсы множественных загрузок, и повторите попытку неудачных частей.

Если вы предпочитаете всегда загружать объект PUT, вы можете вызвать #put или использовать Aws::S3::Client:

# using put
s3 = Aws::S3::Resource.new
File.open('screenshots/image.png', 'rb') do |file|
  s3.bucket('my_bucket').object('key').put(body:file)
end

# using a client
s3 = Aws::S3::Client.new
File.open('screenshots/image.png', 'rb') do |file|
  s3.put_object(bucket:'my_bucket', key:'key', body:file)
end

Кроме того, справочная документация по API для SDK v2 находится здесь: http://docs.aws.amazon.com/sdkforruby/api/index.html