Tôi đã tìm kiếm trên web trong hơn hai ngày nay và có thể đã xem xét hầu hết các kịch bản và cách giải quyết được ghi lại trực tuyến, nhưng không có gì làm việc cho tôi cho đến nay.Cách khắc phục 'Chữ ký yêu cầu mà chúng tôi đã tính không khớp với lỗi chữ ký'?
Tôi đang sử dụng AWS SDK cho PHP V2.8.7 chạy trên PHP 5.3. Tôi cố gắng để kết nối với xô S3 của tôi với đoạn mã sau:
// Create a `Aws` object using a configuration file
$aws = Aws::factory('config.php');
// Get the client from the service locator by namespace
$s3Client = $aws->get('s3');
$bucket = "xxx";
$keyname = "xxx";
try {
$result = $s3Client->putObject(array(
'Bucket' => $bucket,
'Key' => $keyname,
'Body' => 'Hello World!'
));
$file_error = false;
} catch (Exception $e) {
$file_error = true;
echo $e->getMessage();
die();
}
//
tập tin config.php của tôi là như sau:
<?php
return array(
// Bootstrap the configuration file with AWS specific features
'includes' => array('_aws'),
'services' => array(
// All AWS clients extend from 'default_settings'. Here we are
// overriding 'default_settings' with our default credentials and
// providing a default region setting.
'default_settings' => array(
'params' => array(
'credentials' => array(
'key' => 'key',
'secret' => 'secret'
)
)
)
)
);
Nó được sản xuất lỗi sau:
The request signature we calculated does not match the signature you provided. Check your key and signing method.
Tôi đã kiểm tra khóa truy cập và bí mật của mình ít nhất 20 lần, tạo khóa mới, sử dụng các phương thức khác để truyền thông tin (tức là hồ sơ và bao gồm thông tin đăng nhập mã) nhưng hiện tại không có gì hoạt động.
Vì vậy, AWS SDK chỉ triển khai một loạt các cuộc gọi API trực tiếp. Với AWS, mọi cuộc gọi bạn thực hiện đều lấy khóa riêng tư của bạn (hoặc 'bí mật' ở trên) và sử dụng để tính chữ ký dựa trên khóa truy cập của bạn, dấu thời gian hiện tại, cộng với một loạt các yếu tố khác. Xem http://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html. Đó là một thời gian dài, nhưng cho rằng họ bao gồm dấu thời gian, có lẽ thời gian của môi trường địa phương của bạn là tắt? –