首页 > 解决方案 > 在 Go 中将文件从本地文件夹移动到 s3 存储桶

问题描述

我正在尝试将本地目录中文件夹下的文件移动到 s3 存储桶。我知道aws sync s3允许将本地文件复制到 s3 存储桶的命令。有没有办法aws sync s3在 go 程序中执行命令?有没有其他选择,也许通过使用 aws s3 sdk 来进行?

标签: goamazon-s3

解决方案


AWS 不sync使用 S3 公开任何 API。我相信 AWS CLI 只是列出了源和目标(本地文件夹和 S3)中的所有文件,计算差异并上传/下载目标中缺少的所有元素。

文档aws sync s3也表明了这一点:

同步目录和 S3 前缀。递归地将新的和更新的文件从源目录复制到目标。如果文件夹包含一个或多个文件,则仅在目标中创建文件夹。

您将能够使用 AWS 开发工具包列出远程对象并将对象从本地上传到 S3,但您必须在自己的代码中管理本地列表和上传机制。

我没有使用 AWS SDK for go 的第一手经验,但是粗略搜索S3 服务的文档并没有产生任何类似于sync. 我可以肯定地告诉你,Python 和 Javascript 的官方 SDK 都没有公开任何sync方法。


推荐阅读