[英]Symfony 4 & Amazon S3 - AWS credentials not working
我有一个部署到 Digital Ocean Ubuntu 服务器的 Symfony 4 项目。 为了存储文件,我使用了 Amazon S3 存储桶。 我使用aws/aws-sdk-php
库与 Amazon S3 存储桶进行交互。 我已经在 ~/.aws/credentials 中创建了全局凭证文件并设法使其工作。
问题是它在服务器上不起作用。 我将凭证文件复制到服务器的 ~/.aws/ 目录,但出现此错误。
Error retrieving credentials from the instance profile metadata server. (Client error: `GET http://169.254.169.254/latest/meta-data/iam/security-credentials/` resulted in a `404 Not Found` response: not found)
我对这个错误做了一些研究 - php 服务器似乎没有找到凭据文件。 我该如何解决?
所有 AWS 开发工具包都按照特定的优先级顺序从各种来源搜索凭证。 您可以在boto3 文档中看到此顺序。
通常,如果 SDK 无法从它搜索的任何来源中找到任何凭据,那么它会报告从其搜索列表中的最终凭据提供程序检索凭据的错误,这通常(并且可能总是)来自实例元数据服务。
在您的情况下,您甚至没有在 AWS 上运行,因此实例元数据服务不相关,您看到的错误消息是一条红鲱鱼。
这是我怀疑正在发生的事情:您正在尝试通过~/.aws/credentials
文件提供凭证,但 AWS PHP SDK 没有在那里找到凭证。 因此,可能会发生以下情况之一:
.aws/credentials
文件的主目录不同~/.aws/credentials
文件在某些方面无效或其中的凭据为零(我想说不太可能)我的投票是#1。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.