我有一个应用程序,可从各种来源下载内容。它依赖于图像上设置的“Content-Type”标头。大多数 Web 服务器都能正确执行此操作,但似乎 Amazon S3 服务器未设置 Content-Type。
我假设亚马逊服务器配置正确,那么问题可能出在哪里?这些图片上传不正确吗?或者我不应该依赖设置的内容类型?
谢谢
答案1
上传到 S3 的文件需要通知 Content-Type 标头。每个文件夹没有像在“普通”内容 Web 服务器上那样的默认内容类型定义(这不是一个坏主意!)。
答案2
将对象上传到 S3 时,您可以选择设置 MIME 类型,该类型将在 Content-Type 标头中返回给客户端。S3 不会自行添加此标头,因此如果用户未设置该值,则不会返回 Content-Type 标头。
HTTP 服务器不需要提供 Content-Type 标头,因此我建议使用回退机制。也许您可以查看 URL 并从文件扩展名中进行猜测?这有点像 hack,但至少在您提供的示例中是可行的。
答案3
您需要设置这个。
在 aws 管理控制台上,如果您浏览到相关文件,则可以单击“属性”。然后在屏幕底部单击元数据。如果设置了密钥 Content-Type,请将其更改为所需的内容,否则添加新密钥,选择 Content-Type 并将其设置为适当的值。