So legen Sie Content-Disposition-Header als Standard für Amazon S3 Bucket fest

Lesezeit: 3 Minuten

Garretts Benutzeravatar
Garrett

Das Problem, das ich habe, ist, dass ich die brauche Inhaltsdisposition: Anhang Kopfzeile, die in JEDER Datei vorhanden sein soll, die meinen Eimer trifft.

In WordPress kann ich einfach .htaccess verwenden, um die betreffenden Dateitypen (Videos) abzudecken, aber diese Regeln gelten nicht für meine S3-Downloads, die Browser einfach versuchen zu öffnen, anstatt sie herunterzuladen.

Ich brauche eine automatisierte/Standardlösung, da ich nicht der einzige bin, der diese Dateien hochlädt (unsere Mitarbeiter laden über WordPress hoch, und die Uploads werden alle in unserem S3-Bucket gespeichert). Daher ist die Verwendung von Cloudberry oder anderen Browsern in dieser Situation nicht sinnvoll. Ich kann die Dateien nicht einzeln anpassen (die Uploads sind zu häufig).

Gibt es eine Möglichkeit, dies zu tun?

(Sonstige Informationen: Ich verwende das Plugin “Amazon S3 and Cloudfront” auf WordPress, das für die Verknüpfung der beiden verantwortlich ist. Leider ist die Seite nicht öffentlich, daher kann ich nicht darauf verlinken.)

Benutzeravatar von joschua011
joschu011

Leider gibt es keine Möglichkeit, dies für einen ganzen Bucket in S3 festzulegen, und auch Cloudfront kann nur Cache-Header festlegen

Doch kannst du set Der Content-Disposition-Parameter beim Hochladen von Dateien auf S3.

Für vorhandene Dateien müssen Sie den Header ändern, also jedes Objekt im Bucket durchlaufen und kopieren Sie es mit den neuen Headern in sich selbst.

Alles, was ich jetzt sagen kann, posten Sie bitte den Code, der die Datei auf S3 hochlädt.

  • Ich vermute, der für den Upload verantwortliche Code ist hier oder dort (kein PHP-Typ … also versuche ich es nur): code.google.com/p/wordpress-s3/source/browse/trunk/tantan-s3/…

    – Garrett

    6. November 2013 um 21:50 Uhr

  • Update für 2022, Sie können den Content-Disposition-Header und andere festlegen, indem Sie eine oder mehrere Dateien auswählen und auf „Aktionen“ => „Metadaten bearbeiten“ klicken.

    – Jake

    11. Mai um 2:09 Uhr

Zuerst müssen Sie den Code finden, der das Objekt in den Bucket legt. Sie können Notepad++ verwenden, um nach “putObject” innerhalb der PHP-Dateien des von Ihnen verwendeten Plugins. Ein Beispielcode eines anderen WP-Plugins, das Dateien in S3 speichert, lautet wie folgt:

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

Fügen Sie nun einfach ContentDisposition’ => ‘attachment’ wie folgt hinzu:

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

Das ist es 🙂

Ja, Sie können Standard festlegen Inhaltsdisposition Header für jede einzelne hochzuladende Datei in Ihrem S3-Bucket mit dem Bucket Explorer Bucket-Standard Besonderheit.

Für vorhandene Dateien können Sie verwenden Metadaten aktualisieren Option, mit der Metadaten für jede Datei, die in Ihrem Bucket vorhanden ist, im Batch aktualisiert werden.

Sie müssen nur –

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

Aktualisieren Sie dann die Metadaten der Dateien.

Sehen Sie sich diese Seite an Legen Sie Content-Disposition für Ihre Datei fest.

Weitere Referenzen:

Vielen Dank

  • Dies ist jedoch nur für Uploads über den Bucket Explorer relevant, richtig? Dies würde sich nicht auf Uploads von anderen Standorten auswirken?

    – Garrett

    12. November 2013 um 18:47 Uhr

  • Ja, Bucket Defaults funktionieren für den Upload, der mit Bucket Explorer durchgeführt wird.

    – Neelam Sharma

    13. November 2013 um 1:37 Uhr

1393940cookie-checkSo legen Sie Content-Disposition-Header als Standard für Amazon S3 Bucket fest

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy