Amazon S3 не отправляет заголовок Content-Type
У меня есть приложение, которое загружает контент из разных источников. Он опирается на заголовок "Content-Type", устанавливаемый на изображениях. Большинство веб-серверов делают это правильно, но, похоже, сервер Amazon S3 не устанавливает Content-Type.
Я предполагаю, что серверы Amazon настроены правильно, так в чем может быть проблема? Эти изображения не загружены правильно? Или я не должен полагаться на устанавливаемый тип контента?
Спасибо
3 ответа
Файлы, загруженные на S3, должны содержать заголовок Content-Type. Не существует определения типа контента по умолчанию, подобного тому, которое вы можете сделать на "обычном" контент-веб-сервере (что было бы неплохо!) Для каждой папки.
Вы должны установить это.
В консоли управления aws, если вы перейдете к рассматриваемому файлу, вы можете нажать "Свойства". Затем внизу экрана на Метаданные. Если Key Content-Type установлен, измените его на желаемый, в противном случае добавьте новый Key, выберите Content-Type и установите для него соответствующее значение.
При загрузке объектов в S3 у вас есть возможность установить MIME-тип, который будет возвращаться в заголовке Content-Type клиентам. S3 не будет добавлять этот заголовок самостоятельно, поэтому, если пользователь не установил это значение, заголовок Content-Type возвращаться не будет.
HTTP-серверы не обязаны предоставлять заголовок Content-Type, поэтому я бы предложил механизм резервирования. Возможно, вы могли бы посмотреть на URL и угадать по расширению файла? Это что-то вроде хака, но это сработает в приведенном вами примере.