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