Dev*_*per 7 amazon-s3 amazon-web-services node.js aws-sdk aws-lambda
我想在特定日期之后获取对象。使用 AWS CLI,我可以使用以下命令列出对象:
aws s3api list-objects-v2 --bucket "bucket1" --prefix "file-" --query "(Contents[?LastModified>'2019-02-06T05:34:12.000Z'])[0]"
但我想从我的代码中执行此操作,因此请让我知道如何使用 NPM AWS-SDK 过滤对象。
注意:我可以使用exec或来完成此操作spawn,但为此我必须使用 CLI 配置配置文件,这将在本地创建凭证文件,所以我不想这样做。
使用适用于 node.js 的 AWS 开发工具包。调用该listObjectsV2方法,然后在回调方法中使用jmespath.js来过滤API调用的输出。这相当于 AWS CLI 通过--query参数执行的操作。
像这样的东西(未经测试)
var params = {
Bucket: "bucket1",
Prefix: "file-"
};
s3.listObjectsV2(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else {
query = "Contents[?LastModified>'2019-02-06T05:34:12.000Z']"
var results = jmespath.search(data,query);
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4675 次 |
| 最近记录: |