前提
- AWSの認証設定済。
詳細
gemインストール
Gemfile
gem 'aws-sdk'
操作
### ファイルアップロード
- parms[:file]でファイル受け取り
def upload
region = 'XXXX'
bucket = "#{bucket_name}" # S3バケット名
key = "#{key}" #S3のファイル名
client = Aws::S3::Client.new(region: region)
upload_file = params[:file]
client.put_object(bucket: bucket, key: key, body: upload_file.read)
end
ファイルダウンロード
def download
region = 'XXX'
bucket = "#{bucket_name}" # S3バケット名
key = "#{key}" #S3のファイル名
client = Aws::S3::Client.new(region: region)
data = client.get_object(:bucket => bucket, :key => key).body
file_name = "#{file_name}" #ダウンロード時ファイル名
type = 'xxx' # ファイルの型 csvの場合 'text/csv'
send_data data.read, filename: file_name, disposition: 'attachment', type: type
end
備考
- rails初心者です。アウトプット練習で書いてみました。
- バリデーション等は考慮外。