繁体   English   中英

如何使用 AWS Javascript SDK 从 AWS S3 存储桶中检索对象列表(包括与每个对象关联的元数据)?

[英]How to retrieve list of objects (including the metadata associated with each object) from AWS S3 bucket using AWS Javascript SDK?

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

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

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

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,然后查询一次该文档。 或者,设置一个 lambda 来抽象出 S3 查询并返回组合结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM