使用共享托管时在哪里保存AWS Credentials文件?

时间:2019-10-25 09:16:26

标签: php amazon-web-services

我正在使用Amazon的AWS PHP SDK,并且在以下目录“ public_html / composer”上安装了composer。我当前正在使用共享主机。但是,我有权访问根。

当我尝试使用AWS's sample code时,我的error_log中出现以下错误:

Fatal error: Uncaught Aws\Exception\CredentialsException: Cannot read credentials from /.aws/credentials in /home2/maltaboo/public_html/composer/vendor/aws/aws-sdk-php/src/Credentials/CredentialProvider.php:691 Stack trace: #0 /home2/maltaboo/public_html/composer/vendor/aws/aws-sdk-php/src/Credentials/CredentialProvider.php(424): Aws\Credentials\CredentialProvider::reject('Cannot read cre...') #1 /home2/maltaboo/public_html/composer/vendor/aws/aws-sdk-php/src/Middleware.php(121): Aws\Credentials\CredentialProvider::Aws\Credentials\{closure}() #2 /home2/maltaboo/public_html/composer/vendor/aws/aws-sdk-php/src/RetryMiddleware.php(266): Aws\Middleware::Aws\{closure}(Object(Aws\Command), Object(GuzzleHttp\Psr7\Request)) #3 /home2/maltaboo/public_html/composer/vendor/aws/aws-sdk-php/src/Middleware.php(206): Aws\RetryMiddleware->__invoke(Object(Aws\Command), Object(GuzzleHttp\Psr7\Request)) #4 /home2/maltaboo/public_html/composer/vendor/aws/aws-sdk-php/src/StreamRequestPayloadMiddleware.php(83): Aws\Middleware::Aws\{closure}(Ob in /home2/maltaboo/public_html/composer/vendor/aws/aws-sdk-php/src/Credentials/CredentialProvider.php on line 691

我根据AWS教程创建了我的凭证文件:

[default]
aws_access_key_id = 123456789
aws_secret_access_key = abcdefghijklm

文档指出我必须将其保存在以下位置:~/.aws/credentials

我尝试创建目录.aws/credentials了很多次,但是遇到相同的错误。我也尝试过寻找.aws文件,但是除了我刚刚创建的文件以外,我找不到它。

鉴于以上所述,我应该将凭证文件放在哪里? TIA

1 个答案:

答案 0 :(得分:0)

我也遇到了同样的问题 Uncaught ReferenceError: getVariable is not defined

在此提及我的解决方案以供参考:

此解决方案在 aws-php-sdk 3.173 版中测试

CredentialProvider.php 使用 cannot read /.aws/credentials 路径从文件加载凭据。

就我而言(Linux 共享主机)它是空的。

所以我使用以下方法将其设置为所需的值:

getenv('HOME')/.aws/credentials