我可以从S3对象stream中获取Content-Type而无需对headObject进行显式调用吗?

我正在从S3和通过我的API的文件stream到客户端,以执行访问控制规则。 这样做,我需要适当地设置内容types标题。 有没有人知道一种方法来从S3中获取内容types,而不需要单独调用headObject? 现在我必须首先获取对象元数据,然后再发出请求来获取对象stream。

编辑:澄清,我正在使用

return s3.getObject(params).createReadStream(); 

得到stream,所以没有我知道的callback。

S3将通过调用putObject函数保存您指定的Content-Type对象,同时保存您的数据。

 s3Instance.putObject({ Bucket: "my-bucket", ContentType: "application/xml", Body: xmlContent }, function(err) { //callback here }); 

来源 : http : //docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putObject-property

调用getObject函数时返回对象的Content-Type将与上面指定的相同。 但是,您可以在调用getObject函数时设置所需的Content-Type

 s3Instance.getObject({ Bucket: "my-bucket", Key: "MyXMLFile", ContentType: "text/xml" }, function(err, data) { //callback here }); 

来源 : http : //docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#getObject-property