抱歉,如果这是一个非常基本的问题,但我是 AWS 的新手,在我的在线研究中没有找到答案。我正在 Go 中创建一个 CLI 工具,它将从本地的 s3 存储桶中提取所有内容,然后允许您输入新的凭据,然后将这些内容推送到新环境中的存储桶。
我遇到了输入新凭据的问题。这是代码:
type MyProvider struct{
creds credentials.Value
}
func getNewCredentials() {
reader := bufio.NewReader(os.Stdin)
fmt.Print("Copy new AWS Access Key: ")
AK, _ := reader.ReadString('\n')
fmt.Print("Copy new AWS Secret Access Key: ")
SAK, _ := reader.ReadString('\n')
fmt.Print("Copy new AWS session token: ")
ST, _ := reader.ReadString('\n')
fmt.Print("New stage name(poc, dev, qa, prod): ")
lib.Stage, _ = reader.ReadString('\n')
provider := MyProvider{
creds: credentials.Value{AK, SAK, ST, ""},
}
creds := credentials.NewCredentials(&provider)
}
我正在使用自定义提供程序,并且我已经覆盖了提供程序函数 Retrieve() 和 isExpired()(代码片段中未显示)。
当我尝试访问新存储桶时,它说该存储桶不存在,这让我相信凭据没有正确更新。我的猜测是这与 Value 结构末尾的空白提供者名称有关。我不确定该放什么。
有关如何解决此问题的任何指导都将非常有帮助。该程序没有抛出任何错误,而只是没有实际更新凭据。
千万里不及你
相关分类