如何在 Media Temple DV 上设置 AWS 凭证



我很难通过 Media Temple 中的aws-php-sdk设置 AWS S3 使用的凭证。

我继续收到错误:Cannot read credentials from /.aws/credentials

我尝试按照指南通过 https://docs.aws.amazon.com/cli/latest/userguide/awscli-install-linux.html 安装 AWS CLI。 然后,我使用以下方法通过 https://docs.aws.amazon.com/cli/latest/userguide/tutorial-ec2-ubuntu.html#configure-cli 设置凭据

。但我仍然得到这个错误。

然后,我与Media Temple支持人员进行了聊天,他们在root中创建.aws/credentials文件,但随后错误消息更改为:

Warning: is_readable(): open_basedir restriction in effect. File(/.aws/credentials) is not within the allowed path(s)

MT建议我不要更改基础设置。他们还建议我尽可能简单地更改从何处读取凭据。

有人在机器翻译上成功使用 AWS 凭证吗?

尝试通过SSH使用AWS CLI执行此操作就像在Media Temple上用头撞砖墙一样。

然后,我尝试通过环境变量设置凭据,但这是不可能的。

然后我想到了将凭证文件放在 PHP 可以访问的目录中的想法。 但是,我必须设置aws-php-sdk要查找它的位置。 我在某些文档中找到了环境变量,并尝试通过 php 的setenv()函数设置变量。 没有骰子。

然后,我在aws-php-sdk中搜索了我看到的初始错误,回溯,直到我找到设置凭据文件位置的位置。 事实证明文档是错误的,正确的环境变量名称是HOME

最后,只需在使用 AWS 之前设置HOME即可。 足够容易,但应该更容易 100 倍。 大致如下:

// Set environment variable for credentials location
putenv('HOME=../');
// Set bucket name
$this->bucket = $bucket;
// Create an S3Client
$this->s3Client = new AwsS3S3Client([
'profile' => $this->profile,
'version' => $this->version,
'region'  => $this->region
]);

最新更新