使用 Golang aws-sdk 仅将新修改的文​​件上传到 S3 存储桶

我正在尝试在我的代码中对 S3 存储桶实施备份机制。每次满足条件时,我都需要将整个目录内容上传到 S3 存储桶。

我正在使用这个代码示例:

https://github.com/aws/aws-sdk-go/tree/c20265cfc5e05297cb245e5c7db54eed1468beb8/example/service/s3/sync

它创建目录内容的迭代器,然后使用 s3manager.Upload.UploadWithIterator 上传它们。

一切正常,但我注意到它会上传所有文件并覆盖存储桶中的现有文件,即使自上次备份以来它们没有被修改,我只想上传每个备份之间的增量。

我知道 aws cli 的命令aws s3 sync <dir> <bucket>完全符合我的需要,但是我在 aws-sdk 文档中找不到任何等效的命令。

感谢帮助,谢谢!


FFIVE
浏览 191回答 1
1回答

慕田峪4524236

aws-sdk 中没有这样的功能。您可以自己对每个文件进行检测,以在上传前检查两个对象的哈希值。或者使用社区解决方案https://www.npmjs.com/package/s3-sync-client
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go