小编Ale*_*lix的帖子

AWS Lambda 使用文件版本控制列出 S3 存储桶对象和子目录

我是 lambda 的新手,并试图列出具有嵌套子目录的 S3 存储桶对象,这是结构:

- mybucket/folder1/project1/samplev1.txt
- mybucket/folder1/project1/sampleVer2.txt
- mybucket/folder2/
- mybucket/folder3/
Run Code Online (Sandbox Code Playgroud)

这是我的 lambda 代码:

const AWS = require('aws-sdk');
const s3 = new AWS.S3();

exports.handler = async (event) => {
  const allKeys = [];
  await getKeys({ Bucket: 'ru-mybucket' }, allKeys);
  console.log(allKeys)
  return allKeys;
};

async function getKeys(params, keys){
  const response = await s3.listObjectsV2(params).promise();
  response.Contents.forEach(obj => keys.push(obj.Key));

  if (response.IsTruncated) {
    const newParams = Object.assign({}, params);
    newParams.ContinuationToken = response.NextContinuationToken;
    await getKeys(newParams, keys); // RECURSIVE CALL
  }
}
Run Code Online (Sandbox Code Playgroud)

该函数列出了我的存储桶中的所有对象键及其嵌套的子目录和文件,问题是如何列出嵌套对象,包括它们的版本,我该如何实现?在哪里添加 (listObjectVersions) 在我的代码中能够循环遍历具有版本的对象?

amazon-s3 node.js aws-sdk aws-lambda

5
推荐指数
1
解决办法
7746
查看次数

标签 统计

amazon-s3 ×1

aws-lambda ×1

aws-sdk ×1

node.js ×1