代码之家  ›  专栏  ›  技术社区  ›  Tryliom

AWS S3节点-如何通过其前缀获取对象

  •  0
  • Tryliom  · 技术社区  · 6 年前

    我正在搜索如何检查nodejs中的aws s3 bucket中是否存在一个对象,而不列出我的所有对象(~1500),并检查该对象的前缀,但我找不到方法。

    <prefix I want to search>.<random string>/
    

    前任:

    tutturuuu.dhbsfd7z63hd7833u/
    
    0 回复  |  直到 6 年前
        1
  •  2
  •   Renato Gama    6 年前

    因为您不知道整个对象键,所以需要执行列表并按前缀进行筛选。AWS nodejs sdk provides such a method . 以下是一个例子:

    s3.listObjectsV2({
      Bucket: 'youBucket',
      MaxKeys: 1,
      Prefix: 'tutturuuu.'
    }, function(err, data) {
      if (err) throw err;
    
      const objectExists = data.Contents.length > 0
      console.log(objectExists);
    });
    

    请注意,使用 MaxKeys

    此API调用将仅返回元数据。拥有完整密钥后,您可以使用 getObject 检索对象内容。