Amazon S3 nie wysyła nagłówka Content-Type


10

Mam aplikację, która pobiera treści z różnych źródeł. Zależy to od ustawienia nagłówka „Content-Type” na obrazach. Większość serwerów WWW robi to poprawnie, ale wygląda na to, że serwer Amazon S3 nie ustawia Content-Type.

Zakładam, że serwery Amazon są poprawnie skonfigurowane, więc jaki może być problem? Czy te obrazy nie zostały poprawnie przesłane? A może nie powinienem polegać na ustawionym typie treści?

Przykład

Dzięki


Wierzę, że możesz ustawić typ zawartości podczas przesyłania pliku do Amazon S3. Nie wiem jednak, co robi z domyślnymi nagłówkami typu zawartości. I to oczywiście nie pomaga, gdy nie są to twoje pliki.
— WheresAlice

Widziałem to, ale nie mając konta, nie mogę tego wypróbować. Znajomość odpowiedzi nie rozwiązałaby mojego problemu, ale może sugerować, że obejdę się bez polegania na typie treści.

Odpowiedzi:


7

Pliki przesłane do S3 muszą poinformować nagłówek Content-Type. Nie ma domyślnej definicji typu zawartości, takiej jak te, które można wykonać na „normalnym” serwerze WWW z treścią (co nie byłoby takie złe!) Na folder.


1

Podczas przesyłania obiektów do S3 istnieje możliwość ustawienia typu MIME, który będzie zwracany klientom w nagłówku Content-Type. S3 nie doda tego nagłówka samodzielnie, więc jeśli użytkownik nie ustawił tej wartości, nie zostanie zwrócony nagłówek Content-Type.

Serwery HTTP nie są wymagane do zapewnienia nagłówka Content-Type, więc sugerowałbym mechanizm rezerwowy. Być może mógłbyś spojrzeć na adres URL i zgadywać z rozszerzenia pliku? To trochę włamanie, ale zadziałałoby przynajmniej w podanym przykładzie.


1

Musisz to ustawić.

W konsoli zarządzania aws, jeśli przejdziesz do danego pliku, możesz kliknąć „właściwości”. Następnie u dołu ekranu na metadanych. Jeśli kluczowy typ zawartości jest ustawiony, zmień go na żądany, w przeciwnym razie dodaj nowy klucz, wybierz typ zawartości i ustaw odpowiednią wartość.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.