【问题标题】:How to retrieve list of objects (including the metadata associated with each object) from AWS S3 bucket using AWS Javascript SDK?如何使用 AWS Javascript SDK 从 AWS S3 存储桶中检索对象列表(包括与每个对象关联的元数据)?
【发布时间】:2021-05-03 14:14:42
【问题描述】:

我正在尝试在前端显示存储在我的 AWS S3 存储桶中的对象列表。我可以使用listObjects() 方法轻松检索对象列表。

唯一的问题是我有一些与每个对象关联的元数据,我还想检索这些元数据并将其与列表一起显示。 listObjects() 方法不会检索每个对象的元数据。似乎检索对象元数据的唯一方法是使用headObject() 方法。

但是,headObject() 一次只能获取一个对象的元数据,显然需要我遍历 listObjects() 返回的对象列表和然后使用headObject() 检索每个对象的元数据。我想知道是否有一种方法可以通过一个 API 调用来检索对象列表以及与每个对象关联的元数据?上述解决方案有效,但会大大降低应用程序的性能。

【问题讨论】:

    标签: javascript amazon-web-services amazon-s3


    【解决方案1】:

    listObjectsV2() 返回以下数据:

    /* The following example retrieves object list. The request specifies max keys to limit response to include only 2 object keys.  */
    
    var params = {
      Bucket: "examplebucket", 
      MaxKeys: 2
    };
    s3.listObjectsV2(params, function(err, data) {
      if (err) console.log(err, err.stack); // an error occurred
      else     console.log(data);           // successful response
      /*
      data = {
        Contents: [
          {
            ETag: "\"70ee1738b6b21e2c8a43f3a5ab0eee71\"", 
            Key: "happyface.jpg", 
            LastModified: <Date Representation>, 
            Size: 11, 
            StorageClass: "STANDARD"
          }, 
          {
            ETag: "\"becf17f89c30367a9a44495d62ed521a-1\"", 
            Key: "test.jpg", 
            LastModified: <Date Representation>, 
            Size: 4192256, 
            StorageClass: "STANDARD"
          }
        ], 
        IsTruncated: true, 
        KeyCount: 2, 
        MaxKeys: 2, 
        Name: "examplebucket", 
        NextContinuationToken: "1w41l63U0xa8q7smH50vCxyTQqdxo69O3EmK28Bi5PcROI4wI/EyIJg==", 
        Prefix: ""
      }
      */
    });
    

    这适合您的用例吗?如果没有,也许架构解决方案会有所帮助。在更新 dynamodb 文档的存储桶上设置 webhook,然后查询一次文档。或者,设置一个抽象出 S3 查询并返回组合结果的 lambda。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-06
      • 1970-01-01
      • 1970-01-01
      • 2015-09-12
      • 1970-01-01
      • 1970-01-01
      • 2015-11-18
      • 2017-05-26
      相关资源
      最近更新 更多