0
マイエラーメッセージ:aws-php-sdkを使用してAWS s3に接続します。無効な要求
Uncaught Aws\S3\Exception\InvalidRequestException:
AWS Error Code: InvalidRequest,
Status Code: 400, AWS Request ID: xxx,
AWS Error Type: client,
AWS Error Message: The authorization mechanism you have provided is not supported.
Please use AWS4-HMAC-SHA256., User-Agent: aws-sdk-php2/2.7.27 Guzzle/3.9.3 curl/7.47.0 PHP/7.0.15-0ubuntu0.16.04.4
マイコード:私は介して取得傾ける理由
<?php
use Aws\S3\S3Client;
require 'vendor/autoload.php';
$config = array(
'key' => 'xxx',
'secret' => 'xxx',
'bucket' => 'myBucket'
);
$filepath = '/var/www/html/aws3/test.txt';
//s3
// Instantiate the client.
$s3 = S3Client::factory();
// Upload a file.
$result = $s3->putObject(array(
'Bucket' => $config['bucket'],
'Key' => $config['key'],
'SourceFile' => $filepath,
'Endpoint' => 's3-eu-central-1.amazonaws.com',
'Signature'=> 'v4',
'Region' => 'eu-central-1',
//'ContentType' => 'text/plain',
//'ACL' => 'public-read',
//'StorageClass' => 'REDUCED_REDUNDANCY',
//'Metadata' => array(
// 'param1' => 'value 1',
// 'param2' => 'value 2'
)
);
echo $result['ObjectURL'];
把握カント。私は私の呼び出しで正しいパラメータを持っています。私のコードは、ほとんどの例のページaws-sdk-php
からコピーされています。だからそこに多くの不具合はないはずです。
私はAWS CLIを使用していますし、私のconfigure UPP設定していると資格情報が~/.aws/
の下でファイル
EDIT:
は、それが動作するようになりました!これが今の私のコードです:
<?php
// Get dependencies
use Aws\S3\S3Client;
require 'vendor/autoload.php';
// File to upload
$filepath = '/var/www/html/aws3/test.txt';
// instantiate the Client
$s3Client = S3Client::factory(array(
'credentials' => array(
'key' => 'AKIAJVKBYTTADILGRTVQ',
'secret' => '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'
),
'region' => 'eu-central-1',
'version' => 'latest',
'signature_version' => 'v4'
));
// Upload a file.
$result = $s3Client->putObject(array(
'Bucket' => "myBucket",//some filebucket name
'Key' => "some_file_name.txt",//name of the object with which it is created on s3
'SourceFile' => $filepath,
)
);
// Echo results
if ($result){
echo $result['ObjectURL'];
} else{
echo "fail";
}
ありがとうございます!しかし、AWSエラーコード:InvalidRequest、ステータスコード:400、AWSリクエストID:xxx、AWSエラータイプ:クライアント、AWSエラーメッセージ:AWSエラーメッセージ:あなたが提供した認証メカニズムはまだサポートされていません。 AWS4-HMAC-SHA256を使用してください。( – vonhact
@vonhact正しいKEYとSECRETを使用していることを確認してください。 –
私は今すぐ動作するようになっています。コンストラクタに 'signature'と' region'を渡します。 – vonhact