如何在访问 Public AWS S3 存储桶之前以编程方式禁用凭证检查?
How to Programmatically Disable Credentials Check Before Accessing Public AWS S3 Buckets?
我的 C++ 程序必须访问 public 和私有 AWS 存储桶。 public 存储桶不属于我,因此当程序尝试访问它们并且我的凭据可见时,我收到以下类型错误:
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
在 运行 程序之前我可以成功列出并获取 public 对象。但是,该程序无法访问我的私人存储桶。
我已经在 S3Client
和 ClientConfiguration
中搜索了一些禁用和重新启用凭据检查的选项,但没有找到。
请告诉我这是怎么做到的。
我找到了解决办法。要在不隐藏我的 ~/.aws/credentials
文件的情况下访问 public 个存储桶,我可以创建一个 S3Client with empty credentials.
Aws::Auth::AWSCredentials empty_credentials { };
Aws::S3::S3Client s3_client { empty_credentials, config };
我的 C++ 程序必须访问 public 和私有 AWS 存储桶。 public 存储桶不属于我,因此当程序尝试访问它们并且我的凭据可见时,我收到以下类型错误:
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
在 运行 程序之前我可以成功列出并获取 public 对象。但是,该程序无法访问我的私人存储桶。
我已经在 S3Client
和 ClientConfiguration
中搜索了一些禁用和重新启用凭据检查的选项,但没有找到。
请告诉我这是怎么做到的。
我找到了解决办法。要在不隐藏我的 ~/.aws/credentials
文件的情况下访问 public 个存储桶,我可以创建一个 S3Client with empty credentials.
Aws::Auth::AWSCredentials empty_credentials { };
Aws::S3::S3Client s3_client { empty_credentials, config };