【发布时间】:2021-07-23 05:57:02
【问题描述】:
在命令行我可以运行:
aws s3 同步 s3://my_bucket 。 --dryrun
很好。
但是,我正在尝试在 Laravel 中将其作为命令运行:
public function handle()
{
$command = 'aws s3 sync s3://my_bucket . --dryrun';
shell_exec($command);
}
我得到了:
致命错误:调用 ListObjectsV2 操作:拒绝访问
为什么相同的命令可以在命令行上运行,但不能在我的 PHP 应用程序中运行?
【问题讨论】:
-
通过 PHP 运行时,可能没有设置环境变量,因此 AWS CLI 不知道从哪里自动加载您的凭证。明确指定凭证文件,并查看 CLI 文档/帮助/手册页以了解如何执行此操作。或者,您可以使用一些库直接与 AWS API 交互,而不是来回访问 CLI。
-
您介意将其发布为回复吗?或者我可以用我实际使用的命令来回答我自己的问题。
标签: php laravel amazon-web-services aws-cli