使用AWS GO SDK 实现同步下载和上传大文件
- 02 Sep, 2024

在有些情况下,需要在AWS S3不同的Bucket之间同步文件,由于权限限制,尤其是在跨账号,甚至跨区域的情况下,没法直接使用类似aws s3 sync
这样的命令直接在S3 Bucket之间同步文件。只能先从源S3 Bucket下载文件到本地,等下载完成后再上传到目标S3 Bucket。文件小的情况下,这样做也没有什么问题,但是文件比较大的情况下,这么做会不仅耗时,而且下载文件的机器磁盘也需要使用大量空间才能完成文件的下载。假如磁盘的空间小于下载文件的大小,这样做就不行了。
因此,想到的解决方案自然是如何一边下载一边上传,这样不仅能够提升速度,并且对于磁盘大小也没有什么要求,因为下载的文件是临时分片保存在内存中,等上传完后,又可以重复使用。
本文主要介绍使用AWS GO SDK V2来实现该方法,具体实现步骤如下: