繁体   English   中英

Symfony 4 和 Amazon S3 - AWS 凭证不起作用

[英]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 没有在那里找到凭证。 因此,可能会发生以下情况之一:

  1. 您的 PHP 应用程序以不同的 Linux 用户身份运行,因此其主目录与您放置.aws/credentials文件的主目录不同
  2. 您的~/.aws/credentials文件在某些​​方面无效或其中的凭据为零(我想说不太可能)

我的投票是#1。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM