Ich habe jetzt über zwei Tage im Internet gesucht und wahrscheinlich die meisten online dokumentierten Szenarien und Problemumgehungen durchgesehen, aber bisher hat nichts für mich funktioniert.
Ich bin auf AWS SDK für PHP V2.8.7 unter PHP 5.3.
Ich versuche, mit dem folgenden Code eine Verbindung zu meinem S3-Bucket herzustellen:
// 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();
}
//
Meine config.php-Datei lautet wie folgt:
<?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'
)
)
)
)
);
Es wird der folgende Fehler ausgegeben:
Die von uns berechnete Anforderungssignatur stimmt nicht mit der von Ihnen angegebenen Signatur überein. Überprüfen Sie Ihren Schlüssel und Ihre Signaturmethode.
Ich habe meinen Zugangsschlüssel und mein Geheimnis bereits mindestens 20 Mal überprüft, neue generiert, verschiedene Methoden zur Übergabe der Informationen verwendet (z. B. Profil und Einfügen von Anmeldeinformationen in den Code), aber im Moment funktioniert nichts.
secret
höher) und berechnet daraus eine Signatur basierend auf Ihrem Zugriffsschlüssel, dem aktuellen Zeitstempel und einer Reihe anderer Faktoren. Siehe docs.aws.amazon.com/general/latest/gr/… . Es ist ein Longshot, aber da sie den Zeitstempel enthalten, ist die Zeit Ihrer lokalen Umgebung möglicherweise abgelaufen?