1. ホーム
  2. rest

[解決済み] Amazon S3 ファイルのダウンロード名を変更する

2022-07-27 04:47:36

質問

S3上にGUIDをキー名とするファイルを保存しています。

私は、以下のように事前に署名されたURLを使ってダウンロードしています。 S3 REST API

私はオリジナルのファイル名を自分のデータベースに保存しています。 ユーザーが私のWebアプリケーションからファイルをダウンロードするためにクリックしたとき 元のファイル名を返したいのですが、現在取得できるのは GUID . どのように私はこれを達成することができますか?

私のWebアプリケーションはSalesforceにあるので、私はresponse.redirectsを行うための多くのコントロールを持っていないすべてのWebサーバーにファイルをダウンロードし、それをリネームするためにガバナーの制限のために。

HTMLリダイレクト、meta refresh、Javascriptを使用することはできますか? S3 のダウンロード ファイル名を変更する方法はありますか (考えられるのは、オブジェクトを新しい名前にコピーして、それをダウンロードし、それを削除することだけです)。

多くのユーザーがいて、各バケット内の各ファイルが一意な名前であることを保証できないので、ユーザーごとにバケットを作成するのを避けたい。

他の解決策はありますか?

どのように解決するのですか?

この質問は、次のサイトに投稿されたと思います。 Amazon S3フォーラム に投稿されたと思いますが、他の人のためにここに答えを投稿したいと思います。

もし各S3オブジェクトに1つの"user filename"しか存在しないなら、ダウンロードファイル名を設定するために、s3ファイルのContent-Dispositionヘッダーを設定することができます。

Content-Disposition: attachment; filename="foo.bar"

公平を期すために、Amazonフォーラムで正しい回答を提供したのは私ではなく、Colin Rhodesの功績であることを述べておきたいと思います;-)