Amazon S3 が Content-Type ヘッダーを送信しない

Amazon S3 が Content-Type ヘッダーを送信しない

さまざまなソースからコンテンツをダウンロードするアプリケーションがあります。このアプリケーションは、画像に設定されている「Content-Type」ヘッダーに依存しています。ほとんどの Web サーバーはこれを正しく実行しますが、Amazon S3 サーバーは Content-Type を設定していないようです。

Amazon サーバーは正しく設定されていると思いますが、何が問題なのでしょうか? これらの画像が正しくアップロードされていないのでしょうか? それとも、コンテンツ タイプの設定に依存しないほうがよいのでしょうか?

ありがとう

答え1

S3 にアップロードされたファイルは、Content-Type ヘッダーに通知されている必要があります。フォルダーごとに「通常の」コンテンツ Web サーバーで実行できるようなデフォルトのコンテンツ タイプ定義はありません (これはそれほど悪い考えではありません)。

答え2

オブジェクトを S3 にアップロードするときに、Content-Type ヘッダーでクライアントに返される MIME タイプを設定するオプションがあります。S3 は独自にこのヘッダーを追加しないため、ユーザーがその値を設定していない場合は Content-Type ヘッダーは返されません。

HTTP サーバーは Content-Type ヘッダーを提供する必要がないため、フォールバック メカニズムをお勧めします。URL を見て、ファイルの拡張子から推測することは可能でしょうか? ちょっとしたハックですが、少なくとも提供された例では機能します。

答え3

これを設定する必要があります。

aws 管理コンソールで、問題のファイルを参照する場合は、「プロパティ」をクリックします。次に、画面の下部にあるメタデータをクリックします。キーのコンテンツ タイプが設定されている場合は、それを必要な値に変更します。そうでない場合は、新しいキーを追加し、コンテンツ タイプを選択して適切な値に設定します。

関連情報