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

プログラムを実行する前に、公開オブジェクトを正常に一覧表示して取得できます。しかし、その後、プログラムは私のプライベート バケットにアクセスできません。

資格情報チェックを無効にして再度有効にするオプションを検索S3Clientしましたが、見つかりませんでした。ClientConfiguration

これがどのように行われるか教えてください。

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 に答える