S3 putObject回调没有返回预期的对象

Thi*_*hin 6 javascript amazon-s3 amazon-web-services node.js express

在将图像上传到S3后,我想获取文件的链接(或文件名也很好).我上传使用下面的代码,它工作.

s3Bucket.putObject(data, function(err, data){
        if (err) { 
          console.log(err);
          res.send({result:0});
        } else {
          res.send({result:1});
          console.log(data)
        }
    });
Run Code Online (Sandbox Code Playgroud)

但在回调数据中它只有1个属性etag.在文档中明确指出它有其他对象,那么如何获取上传文件的路径?

Joe*_*lor 5

文档并不意味着该对象键将在可data回调参数。

您可以根据存储桶的名称和params.Key请求数据上的属性计算出所创建对象的 S3 URI 。

这是如何从putObject回调中执行此操作的示例

s3Bucket.putObject(data, function(err, data) {
  var params = this.request.params;
  var region = this.request.httpRequest.region;
  console.log('s3://' + params.Bucket + '/' + params.Key);
  console.log('https://s3-' + region + '.amazonaws.com/' + params.Bucket + '/' + params.Key)
});
Run Code Online (Sandbox Code Playgroud)