【发布时间】:2021-12-31 17:54:24
【问题描述】:
我正在尝试使用 os/exec 包中的 Golang 命令函数运行 aws 命令。但是这样做会出错。
命令:aws s3 cp SOURCE_DIR s3://BUCKET_NAME/TARGET_DIR --recursive
错误:Unable to locate credentials
但凭据设置为shared configuration file。请指导我在这里做错了什么以及如何解决。
【问题讨论】:
-
为什么要调用 AWS CLI 而不是使用 AWS SDK for Go?
-
AWS 凭证通常存储在
~/.aws/credentials中——Go 应用程序是否以具有此凭证文件的用户身份运行? -
@JohnRotenstein 我正在使用 AWS CLI,因为我需要复制目录中的所有对象,而不是复制单个对象。凭据文件也属于不同的用户,并且正在复制的目录属于不同的用户。这可能是问题吗?
-
如果凭证文件不在您的主目录中,则无法找到。这可能就是您收到错误的原因。我不确定您所说的“正在复制的目录是不同的用户”是什么意思。
-
“被复制的目录是不同的用户”意味着凭证文件是“myuser”,我需要复制的目录是“root”用户。但是我在主目录中有凭据文件。我在 ubuntu 上将 go 应用程序作为服务运行。
标签: amazon-web-services go amazon-s3