(nodeJS)S3对象的Content-Type:手动设置为'image/jpeg'但在S3控制台中显示为'application/octet'

use*_*871 3 javascript amazon-s3 amazon-web-services node.js

我有一个JPEG缓冲区,可以从S3成功上传和下载.但是,我正在尝试通过Messenger API发送它,当它以编程方式访问时,Messenger会抛出错误,因为根据S3控制台,Content-Type图像的实际情况是application/octet-stream.

我手动输入的元数据显示在x-amz-meta-content-type.根据AWS文档,这是默认行为.我怎么可能会覆盖它来获得image/jpegContent-Type

我的代码:

var s3 = new AWS.S3();
var params = {
  Body: buffer,
  Bucket: <bucket>,
  Key: <key>,
  Metadata: {
    'Content-Type': 'image/jpeg'
  }
};
s3.putObject(params, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else  {
    console.log(data);
  }
})
Run Code Online (Sandbox Code Playgroud)

Mar*_*k B 7

不要在该Metadata部分中设置它,仅适用于将带有前缀的属性x-amz-meta.ContentType主要级别有一个参数,如下所示:

var s3 = new AWS.S3();
var params = {
  Body: buffer,
  Bucket: <bucket>,
  Key: <key>,
  ContentType: 'image/jpeg'
};
s3.putObject(params, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else  {
    console.log(data);
  }
})
Run Code Online (Sandbox Code Playgroud)