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

时间:2018-09-14 14:41:21

标签: amazon-web-services credentials mediatemple

我很难通过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支持人员进行了聊天,后者在根目录中创建了.aws / credentials文件,但随后错误消息更改为:

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

MT建议我不要更改baseir设置。他们还建议我尽可能更改读取凭证的位置。

任何人都可以在MT上成功使用AWS凭证吗?

1 个答案:

答案 0 :(得分:0)

尝试通过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 Aws\S3\S3Client([
    'profile' => $this->profile,
    'version' => $this->version,
    'region'  => $this->region
]);
相关问题