【发布时间】:2021-09-29 18:47:18
【问题描述】:
我使用的是 AWS CLI 版本 2。我使用的是 centos > Nginx > php 7.1,当我直接在命令行上运行时,以下命令可以正常工作。
aws s3 cp files/abc.pdf s3://bucketname/
但是当我使用以下代码从 index.php 文件中运行相同的命令时
echo exec("aws s3 cp files/abc.pdf s3://bucketname/ 2>&1");
然后报错
上传失败:无法找到凭据
【问题讨论】:
-
当您从命令行执行时,它会继承您的环境,并且凭据通常来自 ~/.aws/credentials 和 ~/.aws/config 文件。当您运行
exec时,可能在该进程的主文件夹中找不到上述文件。查看此 [AWS 文档] (docs.aws.amazon.com/cli/latest/userguide/…),了解如何指定凭证。 -
@vmachan 我阅读了您提供的上述文档,似乎我需要设置 AWS_CONFIG_FILE 但在 RND 并阅读 docs.aws.amazon.com/cli/latest/userguide/… 之后,我仍然没有办法。
-
@vmachan 我用这样的方式设置 aws configure set aws_config_file ~/.aws/config 但这也没有用
标签: amazon-web-services aws-cli php-7.1