使用 Nodejs 的 AWS S3 存储桶到存储桶同步

AWS S3 bucket to bucket sync using Nodejs

我必须创建一个 Nodejs 脚本来执行 S3 存储桶到存储桶的同步。当文件刚刚上传到主 S3 时,我不想 运行 这个,所以我认为 lambda 不是一个选项。我需要每天在特定时间 运行 完成一次任务。

如何使用 NodeJS 使用 aws-sdk 实现此 S3 存储桶同步?

Cron 可用于调度。我发现只有 aws-sdk 代码可以从 S3 复制到另一个 S3。我们是否有适当的代码来同步两个 S3 存储桶?

您将需要一个 cron 作业,nodejs 提供了一个名为 node-cron

的库
let cron = require('node-cron');

cron.schedule('* * * * *', () => {
  // TODO
  ...
});

对于日常 cron,您可以使用类似

的东西
0 0 * * *

第一个 0 指定分钟,第二个 0 指定小时,因此此 cron 将 运行 每天午夜。

使用Nodejs和aws-sdk的AWS S3 Bucket同步可以通过s3sync package的方法进行。如果配合node-cron使用,就能通过Nodejs实现AWS S3 bucket同步调度


不知道有没有用,如果有Cron和aws-cli,不用Nodejs也能达到目的。 您只需将下面的代码添加到 crontab.

0 0 * * * aws s3 sync s3://bucket-name-1 s3://bucket-name-2