Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
1.2k views
in Technique[技术] by (71.8m points)

amazon web services - Executing AWS CLI command from php results in Unable to locate credentials

I am trying to run aws s3 cp command from within php code using shell exec. Following is the php code.

echo shell_exec("sudo aws s3 cp s3://<bucket>/somefolder/somefile s3://<bucket>/someotherfolder/somefile --region ap-southeast-1 --acl public-read");

The file is not getting copied and The output from echo is the following

"Unable to locate credentials Completed 1 part(s) with ... file(s) remaining"

Note1: I have already set the credentials using aws configure command

Note2: If I run the exact same command directly from terminal, it works fine.

Any idea?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

This worked for me:

<?php

    putenv('AWS_DEFAULT_REGION=your-region');
    putenv('AWS_ACCESS_KEY_ID=YOURACCESSKEYID');
    putenv('AWS_SECRET_ACCESS_KEY=YOURSECRETACCESSKEY');

    $output = shell_exec('aws s3 cp ./file.txt s3://MYBUCKETID/ 2>&1');
    echo "<pre>$output</pre>";

?>


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...