2017-04-10 60 views
0

在这里结束我能够得到来自Amazon S3的桶对象的列表返回亚马逊s3存储桶。如何过滤列表中的对象列表?如何筛选对象列表,从Amazon S3的其文件名以txt

在这里,我想筛选基于其工作不细txt文件名的项目。我需要先过滤它,然后在表格中显示相同的内容。

var files = $([{ "Key": + ".txt" }]) 
    .filter(function (i, n) { 
     return n.Key === + ".txt"; 
    }); 

alert(files.contents.length); 
  • 我只需要其文件以txt结束的项目。

  • 我需要跳过其文件名不以TXT格式结束的对象。

  • 我需要过滤那些文件名以txt结尾并在表格中显示的对象。

  • 表包含5列,我只需要显示那些文件名以.txt结尾的对象。

  • 我们需要将文件名与txt.and匹配,然后过滤,我使用javascript来做到这一点,但我没有得到想要的结果。

如何达到我的要求? 我感谢任何帮助。

回答

0

您可以通过文件扩展名在回调函数本身进行过滤:

const params = { 
    Bucket: 'Grade' 
}; 

s3.listObjects(params, function(err, data) { 
    if (err) console.log(err); 
    else { 
     const textFiles = data.Contents.filter(function(file){ 
      return (file.Key.indexOf('.txt') > 0); 
     }); 

     console.log(textFiles); 
    } 
}); 
+0

thnx很多人工作.. :) – Jones

0

因为这不能工作:

var files = $([{ "Key": + ".txt" }]) 
      .filter(function (i, n) { 
       return n.Key === + ".txt"; 
      }); 

      alert(files.contents.length); 

你并不需要设置很多加号。 离开了+这样

var files = $([{ "Key": ".txt" }]) 
      .filter(function (i, n) { 
       return n.Key === ".txt"; 
      }); 

这应该工作。

+0

这回我错了count..i有更多的文件,以txt,但它不是确切retrurning,我认为它不正确过滤罐 – Jones

+0

你给我们从s3返回样本? – Lacrioque