Mam wyszukiwane w Internecie od ponad dwóch dni, i prawdopodobnie przejrzałem większość udokumentowanych online scenariuszy i obejść, ale jak dotąd nic nie działało dla mnie.Jak naprawić "Obliczony przez nas podpis żądania nie zgadza się z błędem podpisu?
Jestem na AWS SDK dla PHP V2.8.7 z PHP 5.3. Próbuję połączyć się z S3 wiadra z następującego kodu:
// 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();
}
//
Mój plik config.php jest następujący:
<?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'
)
)
)
)
);
Jest produkujących następujący błąd:
The request signature we calculated does not match the signature you provided. Check your key and signing method.
Sprawdziłem już mój klucz dostępu i tajny klucz, co najmniej 20 razy, wygenerowałem nowe, użyłem różnych metod przekazywania informacji (tj. Profilu i wpisywania poświadczeń w kodzie), ale w tej chwili nic nie działa.
W związku z tym pakiet AWS SDK implementuje kilka bezpośrednich wywołań interfejsu API. Dzięki AWS każde wykonane połączenie przyjmuje klucz prywatny (lub 'secret' powyżej) i używa go do obliczania podpisu na podstawie klucza dostępu, bieżącego znacznika czasu oraz wielu innych czynników. Zobacz http://docs.aws.amazon.com/general/latest/gr/signing_aws_api_requests.html. Jest to długi, ale biorąc pod uwagę, że zawierają sygnaturę czasową, być może czas twojego lokalnego środowiska jest wyłączony? –