Ho stabilito un accs AWS. e sto provando a fare il mio primo PUT programmatico in S3. Ho usato la console per creare un secchio e mettere le cose lì. Ho anche creato una sottodirectory (myFolder) e l'ho resa pubblica. Ho creato il mio .aws/file di credenziali e hanno provato ad utilizzare i codici di esempio, ma ottengo il seguente errore:Errore durante l'esecuzione di "PutObject" su AWS, upload fallito
Error executing "PutObject" on "https://s3.amazonaws.com/gps-photo.org/mykey.txt"; AWS HTTP error: Client error: `PUT https://s3.amazonaws.com/gps-photo.org/mykey.txt` resulted in a `403 Forbidden` response:
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied</Message><RequestId>FC49CD (truncated...)
AccessDenied (client): Access Denied - <?xml version="1.0" encoding="UTF-8"?>
<Error><Code>AccessDenied</Code><Message>Access Denied</Message <RequestId>FC49CD15567FB9CD</RequestId><HostId>1GTYxjzzzhcL+YyYsuYRx4UgV9wzTCQJX6N4jMWwA39PFaDkK2B9R+FZf8GVM6VvMXfLyI/4abo=</HostId></Error>
mio codice è
<?php
// Include the AWS SDK using the Composer autoloader.
require '/home/berman/vendor/autoload.php';
use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;
$bucket = 'gps-photo.org';
$keyname = 'my-object-key';
// Instantiate the client.
$s3 = S3Client::factory(array(
'profile' => 'default',
'region' => 'us-east-1',
'version' => '2006-03-01'
));
try {
// Upload data.
$result = $s3->putObject(array(
'Bucket' => $bucket,
'Key' => "myFolder/$keyname",
'Body' => 'Hello, world!',
'ACL' => 'public-read'
));
// Print the URL to the object.
echo $result['ObjectURL'] . "\n";
} catch (S3Exception $e) {
echo $e->getMessage() . "\n";
}
Se qualcuno mi può dare una mano, che sarebbe grande . Grazie. --Len
Ho controllato aws_access_key_id ed è corretto. Ho provato la richiesta semplificata che hai dato sopra e ho ottenuto lo stesso errore. Non so come controllare se la chiave segreta è corretta, ma dal momento che è stata eseguita con copia e incolla, non vedo alcun motivo per sospettare che sia errata. Sembra un problema di configurazione per me. – LenB
Hai provato a semplicemente 'file_get_contents' e' echo' la chiave? Lo stai caricando attualmente da "myFolder/my-object-key". È il percorso corretto? Dovresti essere in grado di 'print_r (file_get_contents ('myFolder/my-object-key'))' Il problema non è necessariamente la chiave non è corretta (comunque sarai sorpreso che il copia e incolla possa spesso produrre caratteri errati se tu non sono sicuro), è che il percorso della chiave è probabilmente errato. – Denault