Ho cercato sul Web per più di due giorni e probabilmente ho esaminato la maggior parte degli scenari documentati in linea e delle soluzioni alternative, ma finora niente ha funzionato per me.
Sono in AWS SDK per PHP V2.8.7 esecuzione su PHP 5.3.
Sto provando a connettermi al mio bucket S3 con il seguente codice:
// 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();
}
//
Il mio file config.php è il seguente:
<?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'
)
)
)
)
);
Sta producendo il seguente errore:
La firma della richiesta che abbiamo calcolato non corrisponde alla firma che hai fornito. Controlla la tua chiave e il metodo di firma.
Ho già controllato la mia chiave di accesso e il mio segreto almeno 20 volte, ne ho generati di nuovi, ho usato diversi metodi per passare le informazioni (es. Profilo e includendo le credenziali nel codice) ma al momento non funziona nulla.
secret
superiore) e la utilizza per calcolare una firma in base alla tua chiave di accesso, al timestamp corrente e a una serie di altri fattori. Vedi docs.aws.amazon.com/general/latest/gr/… . È un colpo lungo, ma dato che includono il timestamp, forse il tempo del tuo ambiente locale è scaduto?