使用版本4.0.3直接上传到AWS S3时,通过IE9发送的上传内容类型将设置为二进制/八位字节流,而不是上传文件的实际内容类型。
这不会发生在Firefox / Chrome中(尚未测试过safari)。
在IE9(或以下)上设置内容类型的技巧是什么。
答案 0 :(得分:1)
默认情况下,如果未将对象指定为请求参数,AWS将在对象上设置“application / octet-stream”的Content-Type。我们根据我们上传的关联type
对象上的Blob
属性在现代浏览器中发送Content-Type参数。 IE9及更早版本不支持File API,因此我们必须在内部维护MIME类型的扩展表,以便发送相同的信息以及IE9及更早版本的请求。目前尚不清楚这是值得的。
坦率地说,这有点是S3的一个缺点,因为它应该只使用文件的多部分边界内的Content-Type参数(如果请求是MPE)。我不确定为什么S3不只是解析这个值。
为什么这些信息对您很重要?无论如何,此值都不保证是正确的,因为它基于文件扩展名,可能会也可能不会准确描述文件容器。如果要正确识别文件的类型,则应通过魔术字节解析来完成。