S3でpresigned_urlを発行してファイルをDLさせる場合(サンプルはAWS-SDKのRubyクライアントを使用)
S3にあるファイルを別名でダウンロードさせるためにはresponse_content_dispositionの指定を良しなにする
response_content_disposition: "attachment; filename=hoge.txt"上記の場合はDL時hoge.txtというファイル名でDLされる
また、S3へのファイル作成時にmetadataというキーで任意のパラメータ指定が可能
下記のようにファイル生成時の情報を元にファイル名を決めたいと言うようなケースにも対応できる
以下例
ファイル作成時
s3client = Aws::S3::Client.new
s3client.put_object(
bucket: 'sample-bucket',
key: 'sample-key',
body: File.read(filename),
content_type: 'text/csv',
metadata: {
hoge: 'fuga'
}
)presigned url生成時
s3client = Aws::S3::Client.new
object = s3client.head_object(
bucket: 'sample-bucket',
key: 'sample-key'
)
metadata = object.metadata
signer = Aws::S3::Presigner.new
signer.presigned_url(
:get_object,
bucket: 'sample-bucket',
key: 'sample-key',
expires_in: 300,
response_content_disposition: "attachment; filename=#{metadata['hoge']}.txt"
)ファイル生成時にmetadata.hogeの値fugaをファイル名に含めることができた
上記例だとfuga.txtというファイル名でダウンロードできる


