如何自动同步s3存储桶到本地文件夹

che*_*huk 5 amazon-s3 amazon-web-services

我正在尝试在本地文件夹中保存我的 s3 存储桶的副本。当存储桶发生变化时应该更新它。我看到很多选项可以使用 lambda 函数来执行此操作,但我询问 s3 cli 命令的用法:

aws s3 sync s3://my-bucket . --delete
Run Code Online (Sandbox Code Playgroud)

它将下载存储桶中存在的所有文件,并删除本地存在但存储桶中缺失的本地文件(预期行为)。

永远循环播放并延迟几秒有什么问题吗?

while true; do aws s3 sync s3://my-bucket . --delete; sleep 3s; done
Run Code Online (Sandbox Code Playgroud)

我每秒可以执行的 api 调用数量是否有限制?有更好的解决方案吗?

F_S*_*O_K 1

你在Linux上吗?您可以将命令放入 shell 脚本中并将其作为 cronjob 运行

* * * * * /path/to/your/script
Run Code Online (Sandbox Code Playgroud)

^ 每分钟运行一次

*/10 * * * * /path/to/your/script
Run Code Online (Sandbox Code Playgroud)

^ 每 10 分钟运行一次

这比循环中的 bash 脚本可靠得多。