Amazon S3 не отправляет заголовок Content-Type


10

У меня есть приложение, которое загружает контент из разных источников. Он опирается на заголовок «Content-Type», устанавливаемый на изображениях. Большинство веб-серверов делают это правильно, но, похоже, сервер Amazon S3 не устанавливает Content-Type.

Я предполагаю, что серверы Amazon настроены правильно, так в чем может быть проблема? Эти изображения не загружены правильно? Или я не должен полагаться на устанавливаемый тип контента?

пример

Спасибо


Я полагаю, что вы можете установить тип контента при загрузке файла в Amazon S3. Я не знаю, что он делает с заголовками типов содержимого по умолчанию. И это, очевидно, не поможет вам, когда это не ваши файлы.
WheresAlice

Я видел это, но не имея учетной записи, я не могу попробовать. Знание ответа не решило бы мою проблему, но это может означать, что я стараюсь не полагаться на тип контента.

Ответы:


7

Файлы, загруженные на S3, должны содержать заголовок Content-Type. Не существует определения типа контента по умолчанию, подобного тому, которое вы можете сделать на «обычном» контент-веб-сервере (что было бы неплохо!) Для каждой папки.


1

При загрузке объектов в S3 у вас есть возможность установить тип MIME, который будет возвращаться в заголовке Content-Type клиентам. S3 не будет добавлять этот заголовок самостоятельно, поэтому, если пользователь не установил это значение, заголовок Content-Type возвращаться не будет.

HTTP-серверы не обязаны предоставлять заголовок Content-Type, поэтому я бы предложил механизм резервирования. Возможно, вы могли бы посмотреть на URL и угадать по расширению файла? Это что-то вроде хака, но это сработает в приведенном вами примере.


1

Вы должны установить это.

В консоли управления aws, если вы перейдете к рассматриваемому файлу, вы можете нажать «Свойства». Затем внизу экрана на Метаданные. Если Key Content-Type установлен, измените его на желаемый, в противном случае добавьте новый Key, выберите Content-Type и установите для него соответствующее значение.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.