aws-sdk(Version2)でS3のファイルを削除する方法

aws-sdkは現在Version1とVersion2がありVersion1とVersion2は基本的に互換性はない様なので注意が必要です。今回はVersion2について書きます。

まず、aws-sdkを使うにあたって初期設定が必要です。 Railsの場合はinitializersにでも書いておけば良いかなと思います。

# Gemfile
gem 'aws-sdk'

# config/initializers/aws_sdk.rb
Aws.config.update(
  {
    region:      'ap-northeast-1',
    credentials: Aws::Credentials.new('S3_KEY_ID', 'S3_SECRET_KEY')
  }
)

削除するにはバケット名とファイルのあるパスを指定して、delete_objectメソッドを使って消すことができます。

# 削除のコード
bucket_name = "abc_bucket"
file_path = "/upload/abc.jpg"

s3 = Aws::S3::Client.new
s3.delete_object(bucket: bucket_name, key: file_path)