【问题标题】:S3 putObject callback not returning expected objectsS3 putObject 回调未返回预期对象
【发布时间】:2016-04-15 06:11:22
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript node.js amazon-web-services express amazon-s3


    【解决方案1】:

    docs 并不意味着对象键将在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)
    });
    

    【讨论】:

    • 这个网址会一直这样吗?会有一些方法从 sdk 获取 url(未签名)?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    • 2012-09-09
    • 1970-01-01
    相关资源
    最近更新 更多