AWS SDK for Ruby(V2)を利用して、Amazon S3を操作する

  • 84
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

しばらく触らないうちにV2とか出てたりしたので、基本操作のおさらい。

Gemでインストール

$ gem install aws-sdk-core
$ gem list aws-sdk-core
*** LOCAL GEMS ***
aws-sdk-core (2.0.3)

Credentialsの設定

~/.aws/credentials
[default]
aws_access_key_id = your_access_key_id
aws_secret_access_key = your_secret_access_key

バケットの一覧表示

aws-sdk-ruby-s3.rb
require "aws-sdk-core"

Aws.config[:region] = 'ap-northeast-1'
s3 = Aws::S3::Client.new

resp = s3.list_buckets
puts resp.buckets.map(&:name)

バケットの作成

s3.create_bucket(bucket: "BucketName")

バケットの削除

s3.delete_bucket(bucket: "BucketName")

オブジェクトの一覧表示

resp = s3.list_objects(bucket: "BucketName")
resp.contents.each do |object|
    puts "#{object.key}"
end

オブジェクトの削除

s3.delete_object(
    bucket: "BucketName",
    key: "sample.jpg"
)

ファイルのアップロード

file_open = File.open("sample.jpg")
file_name = File.basename("sample.jpg")

s3.put_object(
    bucket: "BucketName",
    body: file_open,
    key: file_name
)

ファイルのダウンロード

File.open("sample.jpg", "w") do |file|
    s3.get_object(bucket: "BucketName", key: "sample.jpg") do |chunk|
        file.write(chunk)
    end
end

参考リンク