ちょっとハマったのでメモ
差し替えのファイル名は"response-content-disposition"にセットする必要がある。
object inputのparamでResponseContentDispositionを指定できるようなのでそちらで指定する
svc := s3.New([s3 setting params])
// 日本語ファイル名にしたい場合はURLエンコードが必要
fileName := fmt.Sprintf("attachment; filename=%s", url.QueryEscape("ファイル名"))
params := &s3.GetObjectInput{
Bucket: aws.String([bucket name]),
Key: aws.String([key]),
ResponseContentDisposition: &fileName,
}
req, _ := svc.GetObjectRequest(params)
// 期限付きURLを発行
downloadURL, err := req.Presign(10 * time.Minute)
参考にさせていただいたページ
https://qiita.com/kitar/items/166896357f50f4fe0a95
https://stackoverflow.com/questions/40434525/download-s3-file-with-a-different-filename-than-the-bucket-key