Tenho pesquisado na web há mais de dois dias e provavelmente já examinei a maioria dos cenários e soluções alternativas documentados on-line, mas nada funcionou para mim até agora.
Estou no AWS SDK para PHP V2.8.7 em execução no PHP 5.3.
Estou tentando me conectar ao meu intervalo S3 com o seguinte 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();
}
//
Meu arquivo config.php é o seguinte:
<?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'
)
)
)
)
);
Ele está produzindo o seguinte erro:
A assinatura da solicitação que calculamos não corresponde à assinatura que você forneceu. Verifique sua chave e método de assinatura.
Já verifiquei minha chave de acesso e segredo pelo menos 20 vezes, gerei novos, usei métodos diferentes para passar as informações (ou seja, perfil e inclusão de credenciais no código), mas nada está funcionando no momento.
secret
superior) e a usa para calcular uma assinatura com base em sua chave de acesso, o carimbo de data / hora atual, além de vários outros fatores. Consulte docs.aws.amazon.com/general/latest/gr/… . É uma possibilidade remota, mas, considerando que incluem o carimbo de data / hora, talvez o horário do seu ambiente local esteja errado.