检测S3对象的Content-Type / MIME类型

时间:2016-12-11 23:17:41

标签: node.js http amazon-web-services amazon-s3 react-native

我正在使用S3 SDK将我的服务器生成的预签名URL发送到客户端应用。我不能首先决定是否使用URL来上传MP4视频或JPG图像(因此预先签名的URL中没有设置Content-Type)。

我稍后需要在客户端上下载该文件(NodeJS - React Native)。

有没有办法确定S3对象的文件格式(不基于文件名),然后能够使用正确的标签查看它(在这种情况下,<img>或{{1 }})?

非常感谢

编辑:我一直以为客户可以在上传时自行设置内容类型?我不确定是否会被S3拒绝访问,因为Content-Type不会在预先签名的URL中定义。这样我下载时就可以知道数据类型。那会有用吗? (明天会尝试)

1 个答案:

答案 0 :(得分:0)

我建议在PUT上设置内容类型。但是,使用签名URL时,您可以覆盖内容类型和内容处置。

S3 RESTObjectGET API

示例:

https://my.examplesite.com/some/path/file.jpg?response-content-type=image/jpeg&response-content-disposition=attachment;%20filename="coolcat.jpg"

重要说明:“Content-type”应位于“Content-Disposition”之前,例如上例中。此外,这些查询字符串值不包含在签名生成中,它们会在生成签名后添加到URL中。