Node.js 我可以从S3对象流中获取内容类型而不显式调用headObject吗?

Node.js 我可以从S3对象流中获取内容类型而不显式调用headObject吗?,node.js,amazon-web-services,amazon-s3,Node.js,Amazon Web Services,Amazon S3,我将文件从S3流式传输,并通过API传输到客户端,以强制执行访问控制规则。在这样做时,我需要适当地设置内容类型标题。有人知道不单独调用headObject就从S3获取内容类型的方法吗?现在,我必须首先获取对象元数据,然后再请求获取对象流 编辑: 为了澄清,我使用了 return s3.getObject(params).createReadStream(); 获取流,因此我知道没有回调。S3将使用内容类型保存对象,您可以通过调用putObject函数在保存数据时指定该类型 s3Instance

我将文件从S3流式传输,并通过API传输到客户端,以强制执行访问控制规则。在这样做时,我需要适当地设置内容类型标题。有人知道不单独调用headObject就从S3获取内容类型的方法吗?现在,我必须首先获取对象元数据,然后再请求获取对象流

编辑: 为了澄清,我使用了

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

获取流,因此我知道没有回调。

S3将使用
内容类型保存对象,您可以通过调用
putObject
函数在保存数据时指定该类型

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

调用
getObject
函数时返回对象的
内容类型
,与上面指定的相同。但是,您可以在调用
getObject
函数时设置所需的
内容类型

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

Source

A
GET
请求在头中返回的元数据与从
请求中获得的元数据完全相同。。。因此,您似乎已经在getObject回调的data.ContentType中找到了所需的内容。不是吗?看看这并没有回答问题,当使用
s3.getObject(params).createReadStream()模式时如何访问内容类型头。它返回
意外键“ContentType”