簡體   English   中英

無法找到憑據 aws cli

[英]Unable to locate credentials aws cli

我使用的是 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");

然后它給出錯誤

上傳失敗:無法找到憑據

@ Jass在“~/.aws/credentials”或“~/.aws/config”中添加您的憑據並將其設為[默認] ,否則請使用 profile_name 以防您有多個帳戶。 還要驗證,如果您通過export使用密鑰作為環境變量,那么它僅適用於該終端。 因此,嘗試從導出密鑰的同一終端執行 php 或將其添加到~/.aws/credentials 中

我試過這個,它對我有用,我相信也應該對你有用。 在您的 PHP 代碼 (index.php) 中,嘗試導出憑證文件位置,如下所示

echo exec("export AWS_SHARED_CREDENTIALS_FILE=/<path_to_aws_folder>/.credentials; aws s3 cp files/abc.pdf s3://bucketname/ 2>&1");

當您從命令行運行時,AWS CLI 會從您的主目錄中獲取憑證,即~/.aws/credentials (這是默認值)。 執行index.php時,它會在其主目錄中查找上述文件,該文件與您的主目錄不同,因此無法找到憑據。 通過上述更改,您明確將其指向您的 AWS 憑證。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM