0

我的 C++ 程序必须同时访问公共和私有 AWS 存储桶。公共存储桶不属于我,因此当程序尝试访问它们并且我的凭据可见时,我收到以下类型错误:

Aws::S3::S3Errors::INVALID_ACCESS_KEY_ID    

"InvalidAccessKeyId"    

"The AWS Access Key Id you provided does not exist in our records."

如果我像这样手动隐藏我的凭据

mv ~/.aws/credentials ~/.aws/credentials-hidden

在运行程序之前,我可以成功列出并获取公共对象。但是,该程序无法访问我的私人存储桶。

我已经搜索了一些选项来禁用S3ClientClientConfiguration重新启用凭据检查,但没有找到它。

请告诉我这是如何做到的。

4

1 回答 1

0

我找到了解决方案。要在不隐藏我的文件的情况下访问公共存储桶,我可以使用空凭据~/.aws/credentials创建一个S3Client

Aws::Auth::AWSCredentials empty_credentials { };
Aws::S3::S3Client s3_client { empty_credentials, config };
于 2021-07-21T03:23:26.853 回答