S3 putObjectcallback没有返回期望的对象

我想上传我的图片到S3后,我想获得文件的链接(或文件名也是好的)。 我上传使用下面的代码,它的工作。

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

但在callback数据中,它只有1个属性,etag。 在文档中明确指出它有其他的对象,那么如何获得上传文件的path呢?

文档并不意味着对象键将在datacallback参数中可用。

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

下面是一个如何从putObjectcallback中做到这一点的例子

 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) });