0

我正在使用亚马逊的 AWS PHP SDK,并在以下目录“public_html/composer”上安装了composer。我目前正在使用共享主机。但是,我可以访问根目录。

当我尝试使用AWS 的示例代码时,我的 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

4

1 回答 1

0

我也有同样的问题cannot read /.aws/credentials

在这里提到我的解决方案以供参考:

此解决方案在 aws-php-sdk 版本 3.173 中进行了测试

CredentialProvider.php 使用getenv('HOME')/.aws/credentials路径从文件中加载凭据。

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

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

putenv("HOME=/absolute/path/to/folder/containing/.aws/folder")
于 2021-02-18T14:29:57.420 回答