私はaws-sdkドキュメントで作業するのに大変な時間を費やしています。私がたどるすべてのリンクは古く、使用できないようです。
RubyのS3バケットに画像ファイルをアップロードする簡単な実装例を探しています。
screenshots/image.png
だとしましょうmy_bucket
どんなアドバイスも大歓迎です。
ディスクから名前付きバケットとキーにファイルをアップロードする方法は次のとおりです。
s3 = Aws::S3::Resource.new
s3.bucket('my_bucket').object('key').upload_file('screenshots/image.png')
これが最も簡単な方法です。 'key'を、AmazonS3に保存するキーに置き換える必要があります。これにより、マルチパートアップロード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
また、v2 SDKのAPIリファレンスドキュメントは次のとおりです。 http://docs.aws.Amazon.com/sdkforruby/api/index.html