私はAWS acctを確立しました。私の最初のプログラム的なPUTをS3にしようとしています。私はバケツを作成してそこに物を置くためにコンソールを使いました。私はサブディレクトリ(myFolder)も作成して公開しました。AWSに「PutObject」を実行中にエラーが発生しました。アップロードが失敗します。
Error executing "PutObject" on "https://s3.amazonaws.com/gps-photo.org/mykey.txt"; AWS HTTP error: Client error: `PUT https://s3.amazonaws.com/gps-photo.org/mykey.txt` resulted in a `403 Forbidden` response:
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>FC49CD (truncated...)
AccessDenied (client): Access Denied - <?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied</Message <RequestId>FC49CD15567FB9CD</RequestId><HostId>1GTYxjzzzhcL+YyYsuYRx4UgV9wzTCQJX6N4jMWwA39PFaDkK2B9R+FZf8GVM6VvMXfLyI/4abo=</HostId></Error>
私のコードでは、誰も私を助けることができるならば、それは素晴らしいことだ
<?php
// Include the AWS SDK using the Composer autoloader.
require '/home/berman/vendor/autoload.php';
use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;
$bucket = 'gps-photo.org';
$keyname = 'my-object-key';
// Instantiate the client.
$s3 = S3Client::factory(array(
'profile' => 'default',
'region' => 'us-east-1',
'version' => '2006-03-01'
));
try {
// Upload data.
$result = $s3->putObject(array(
'Bucket' => $bucket,
'Key' => "myFolder/$keyname",
'Body' => 'Hello, world!',
'ACL' => 'public-read'
));
// Print the URL to the object.
echo $result['ObjectURL'] . "\n";
} catch (S3Exception $e) {
echo $e->getMessage() . "\n";
}
です:私は私の.aws /資格情報がファイルおよびサンプルコードを使用して試してみましたが、私は次のエラーを取得する作成しました。ありがとう。 --Len
aws_access_key_idを確認したところ、正しいです。上記の単純化されたリクエストを試したところ、同じエラーが発生しました。私は秘密鍵が正しいかどうかをチェックする方法は分かりませんが、カット&ペーストで行われたので、間違っていると思わない理由はありません。私にとって設定上の問題のようです。 – LenB
あなたは単に 'file_get_contents'とキーを' echo'しようとしましたか? 'myFolder/my-object-key'から現在ロードしています。それは正しい経路ですか? 'print_r(file_get_contents( 'myFolder/my-object-key'))'問題がキーが間違っているとは必ずしも言えませんが(コピー&ペーストは、安全ではない)、それは鍵へのパスが間違っている可能性が高いということです。 – Denault