Bene, se qualcun altro ha problemi con questo come ho fatto io, ecco la risposta, sono andato nei forum di sviluppo php di Amazon e ho ricevuto aiuto dai professionisti.
Sembra che si possa essere un flip-flopping tra la Versione 2 e la Versione 3 dell'SDK o guardare il documento sbagliato. Assicurati di ottenere quello che intendi utilizzare e stai guardando la documentazione corretta. Sono diversi.
V3 - Compositore Presupposto: { "AWS/AWS-sdk-php": "~ 3.0"} - Guida per l'utente: http://docs.aws.amazon.com/aws-sdk-php/v3/guide/index.html - Documentazione API: http://docs.aws.amazon.com/aws-sdk-php/v3/api/index.html - Documenti pre-firmato URL: http://docs.aws.amazon.com/aws-sdk-php/v3/guide/service/s3-presigned-url.html
V2 - Compositore Presupposto: { "AWS/AWS-sdk-php": "~ 2.8"} - Guida per l'utente: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/index.html - Documentazione API: http://docs.aws.amazon.com/aws-sdk-php/v2/api/index.html - Documenti pre-firmato URL: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-s3.html#creating-a-pre-signed-url
.210
guida Mini step-by-step di quello che hai da fare:
1.Installare compositore, preferibilmente utilizzando sudo:
sudo curl -sS https://getcomposer.org/installer | sudo php
2.Go alla cartella di progetto e creare un composer.json file, con la versione desiderata/necessaria, puoi trovare le versioni qui: https://github.com/aws/aws-sdk-php/releases, i comandi per ogni versione sembrano essere molto specifici della versione, fai attenzione, questo era il mio problema principale.
{
"require": {
"aws/aws-sdk-php": "~3.0"
}
}
3.Then andare alla cartella del progetto nel terminale, e l'installazione sdk via compositore e aggiornamento in seguito come: (. Se si cambia la versione è necessario aggiornare di nuovo)
sudo php composer.phar install
sudo php composer.phar update
4. Quindi tutto è pronto per seguire la documentazione della versione corretta, nel mio caso per la versione "aws/aws-sdk-php": "~ 3.0" e per l'URL presigned, ciò che ha funzionato è stato:.
require 'vendor/autoload.php';
use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;
$sharedConfig = [
'region' => 'us-west-1',
'version' => 'latest'
]; //I have AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY as environment variables
$s3Client = new Aws\S3\S3Client($sharedConfig);
$cmd = $s3Client->getCommand('GetObject', [
'Bucket' => $bucket,
'Key' => $keyname
]);
$request = $s3Client->createPresignedRequest($cmd, '+20 minutes');
$presignedUrl = (string) $request->getUri();
echo $presignedUrl;
Spero che questo aiuta a chiunque di fronte gli stessi problemi come ho fatto
dove si effettua passando chiave e segreto AWS, da utilizzare nella firma processo? –
Sono impostati come variabili di ambiente. – Lauro182