使用Golang aws-sdk只上传新修改的文件到S3 bucket



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

我使用这个代码示例:

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

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

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

我知道aws-cli有命令aws s3 sync <dir> <bucket>,它正是我所需要的,但我在aws-sdk文档中找不到任何等效的东西。

感谢您的帮助,谢谢!

aws-sdk中没有这样的功能。您可以为每个文件自己插入它,以便在上传之前检查两个对象的哈希。或者使用社区解决方案https://www.npmjs.com/package/s3-sync-client

最新更新