He buscado en la web durante más de dos días y probablemente he revisado la mayoría de los escenarios y soluciones documentados en línea, pero nada me ha funcionado hasta ahora.
Estoy en AWS SDK para PHP V2.8.7 ejecutándose en PHP 5.3.
Estoy intentando conectarme a mi bucket de S3 con el siguiente código:
// 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();
}
//
Mi archivo config.php es el siguiente:
<?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'
)
)
)
)
);
Está produciendo el siguiente error:
La firma de la solicitud que calculamos no coincide con la firma que proporcionó. Verifique su clave y método de firma.
Ya verifiqué mi clave de acceso y mi secreto al menos 20 veces, generé otras nuevas, usé diferentes métodos para pasar la información (es decir, el perfil y las credenciales incluidas en el código) pero nada funciona en este momento.
secret
superior) y la usa para calcular una firma basada en su clave de acceso, la marca de tiempo actual, además de un montón de otros factores. Consulte docs.aws.amazon.com/general/latest/gr/… . Es una posibilidad remota, pero dado que incluyen la marca de tiempo, ¿quizás el tiempo de su entorno local está fuera de lugar?