javascript - S3 putObject 回调不返回预期的对象

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

我想在将图像上传到 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。在文档中明确说明它有其他对象,那么如何获取上传文件的路径?

最佳答案

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

关于javascript - S3 putObject 回调不返回预期的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34712995/

相关文章:

javascript - 向字符串化 JSON 对象值添加引号

javascript - Kendo UI Grid 处理列模板中的缺失值

javascript - 向 PayPal Payouts REST API 发送请求返回 HTTP 代码 204 且无内容

node.js - 目前已禁用 'Web App Bot' 机器人的迁移

mysql - AWS RDS MySQL 跨区域复制

javascript - 从表单获取数据并在引导模式中显示它们

javascript - Knockout js 中嵌套模板中的动态数据绑定(bind)

node.js - NGINX+NODE JS - 连接到上游时没有实时上游,客户端 : 127. 0.0.1

c# - .Value 打印为 Amazon.DynamoDBv2.DocumentModel.DynamoDBBool 而不是 'true' 或 'false'

java - Play Framework 应用程序默认使用多少最大堆空间