10

私が抱えている問題は、バケットにヒットするすべてのファイルにContent-Disposition: 添付ヘッダーが存在する必要があることです。

Wordpress では、問題のファイル タイプ (ビデオ) をカバーするために .htaccess を使用することができますが、これらのルールは S3 ダウンロードには適用されず、ブラウザーはダウンロードではなく単に開こうとしています。

これらのファイルをアップロードするのは私だけではないため、自動化されたデフォルトのソリューションが必要です (当社のスタッフが Wordpress を介してアップロードし、アップロードはすべて S3 バケットに保存されます)。そのため、Cloudberry やその他のブラウザーを使用しても、この状況では役に立ちません。ファイルごとにファイルを調整することはできません (アップロードの頻度が高すぎます)。

これを行う方法はありますか?

(その他の情報: 私は、Wordpress で「Amazon S3 and Cloudfront」プラグインを使用しており、この 2 つをリンクする責任があります。残念ながら、このサイトは公開されていないため、リンクできません。)

4

3 に答える 3

1

まず、オブジェクトをバケットに入れるコードを見つける必要があります。notepad++ を使用して、使用しているプラ​​グインの php ファイル内で「 putObject 」を検索できます。ファイルを S3 に保存する別の WP プラグインのコード例は次のとおりです。

$this->s3->putObject( array(
            'Bucket'     => $bucket,
            'Key'        => $file['name'],
            'SourceFile' => $file['file'],
        ) );

次に、次のように ContentDisposition' => 'attachment' を追加するだけです。

$this->s3->putObject( array(
            'Bucket'     => $bucket,
            'Key'        => $file['name'],
            'SourceFile' => $file['file'],
            'ContentDisposition' => 'attachment',
        ) );

それでおしまい :)

于 2018-08-08T16:42:01.013 に答える
-1

はい、バケット エクスプローラーのバケット デフォルト機能を使用して、S3 バケットに今後アップロードするファイルごとにデフォルトの Content-Dispositionヘッダーを設定できます。

既存のファイルの場合、バケットに存在するすべてのファイルのメタデータをバッチで更新する [メタデータの更新] オプションを使用できます。

あなたはただする必要があります-

Select Key as : Content-Disposition
Add Value as : attachment;filename={$file_name_without_path_$$}

次に、ファイルのメタデータを更新します。

ファイルに Content-Disposition を設定するには、このページを参照してください。

その他の参照:

ありがとう

于 2013-11-12T07:20:06.660 に答える