我很难通过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建议我不要更改basedir设置。他们还建议我尽可能简单地更改凭据的读取位置。
有人在MT上成功使用AWS凭证吗?
尝试通过SSH使用AWS CLI执行此操作就像在Media Temple上撞墙一样。
然后我尝试通过环境变量设置凭据,但这是不行的。
然后我想到将凭证文件放在PHP可以访问的目录中。但是,我必须设置aws-php-sdk
寻找它的位置。我在一些文档中找到了环境变量,并尝试通过php的setenv()
函数设置变量。没有骰子。
然后我在aws-php-sdk
上搜索了我看到的初始错误,回溯到我找到了凭据文件位置设置的位置。原来文档是错误的,正确的环境变量名称是HOME
。
最后,所需的只是在使用AWS之前设置HOME
。很容易,但应该是100x更容易弄清楚。这些方面的东西:
// 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
]);