Amazon S3 sendet keinen Content-Type-Header

10

Ich habe eine Anwendung, die Inhalte aus verschiedenen Quellen herunterlädt. Es basiert auf dem Header "Content-Type", der für Bilder festgelegt wird. Die meisten Webserver tun dies korrekt, aber es scheint, dass der Amazon S3-Server den Inhaltstyp nicht festlegt.

Ich gehe davon aus, dass Amazon-Server korrekt konfiguriert sind. Woran könnte das liegen? Werden diese Bilder nicht korrekt hochgeladen? Oder sollte ich mich nicht darauf verlassen, dass der Inhaltstyp festgelegt wird?

Beispiel

Vielen Dank


quelle
Ich glaube, Sie können den Inhaltstyp festlegen, wenn Sie die Datei auf Amazon S3 hochladen. Ich weiß jedoch nicht, was es mit Standard-Headern vom Typ Inhalt macht. Und das hilft Ihnen offensichtlich nicht, wenn es nicht Ihre Dateien sind.
WheresAlice
Ich habe das gesehen, aber ohne Account kann ich es nicht ausprobieren. Die Antwort zu kennen würde mein Problem nicht beheben, aber es könnte bedeuten, dass ich mich nicht auf den Inhaltstyp verlasse.

Antworten:

7

Auf S3 hochgeladene Dateien müssen den Content-Type-Header informiert haben. Es gibt keine Standarddefinition für den Inhaltstyp, wie Sie sie auf einem "normalen" Inhaltswebserver (was keine so schlechte Idee wäre!) Pro Ordner durchführen können.

Norberto
quelle
1

Beim Hochladen von Objekten in S3 haben Sie die Möglichkeit, einen MIME-Typ festzulegen, der im Content-Type-Header an Clients zurückgegeben wird. S3 fügt diesen Header nicht alleine hinzu. Wenn der Benutzer diesen Wert nicht festgelegt hat, wird kein Content-Type-Header zurückgegeben.

HTTP-Server müssen den Content-Type-Header nicht bereitstellen, daher würde ich einen Fallback-Mechanismus vorschlagen. Vielleicht könnten Sie sich die URL ansehen und anhand der Dateierweiterung raten? Es ist ein bisschen wie ein Hack, aber es würde zumindest in dem Beispiel funktionieren, das Sie bereitgestellt haben.

Martin M.
quelle
1

Sie müssen dies einstellen.

Wenn Sie in der aws-Verwaltungskonsole zu der betreffenden Datei navigieren, können Sie auf "Eigenschaften" klicken. Dann am unteren Bildschirmrand auf Metadaten. Wenn der Schlüsselinhaltstyp festgelegt ist, ändern Sie ihn nach Ihren Wünschen. Andernfalls fügen Sie einen neuen Schlüssel hinzu, wählen Sie Inhaltstyp aus und setzen Sie ihn auf den entsprechenden Wert.

Decado
quelle