Ну, если у кого-то еще есть проблемы с этим, как я, вот ответ, я зашел на форумы развития амазонки php и получил помощь от профессионалов.
Кажется, что вы можете переключаться между версией 2 и версией 3 SDK или смотреть на неправильный документ. Убедитесь, что вы получаете тот, который собираетесь использовать, и смотрите правильную документацию. Они разные.
V3 - композитор Требования: { "AWS/AWS-СДК-PHP": "~ 3,0"} - Руководство пользователя: http://docs.aws.amazon.com/aws-sdk-php/v3/guide/index.html - API Docs: http://docs.aws.amazon.com/aws-sdk-php/v3/api/index.html - Pre-подписанный URL Docs: http://docs.aws.amazon.com/aws-sdk-php/v3/guide/service/s3-presigned-url.html
V2 - композитор Требование: { "AWS/AWS-СДК-PHP": "~ 2,8"} - Руководство пользователя: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/index.html - API Docs: http://docs.aws.amazon.com/aws-sdk-php/v2/api/index.html - Pre-подписанный URL Docs: http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-s3.html#creating-a-pre-signed-url
Mini шаг за шагом руководство о том, что вы должны сделать:
1.Install композитор, предпочтительно с использованием Sudo:
sudo curl -sS https://getcomposer.org/installer | sudo php
2.Go в папку проекта и создать composer.json файл, с нужной вам версией, вы можете найти здесь: https://github.com/aws/aws-sdk-php/releases, команды для каждой версии кажутся очень специфичными для версии, будьте осторожны, это была моя главная проблема.
{
"require": {
"aws/aws-sdk-php": "~3.0"
}
}
3.Then перейти в папку проекта в терминале, и установить с помощью SDK композитора и обновления позже, как: (. Если вы измените версию, вы должны снова обновить)
sudo php composer.phar install
sudo php composer.phar update
4. Затем все готово для вас, чтобы следовать надлежащей документации по версии, в моем случае для версии «aws/aws-sdk-php»: «~ 3.0" и presigned URL, что сработало было:.
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;
Я надеюсь, что это помогает любому сталкивается с теми же проблемами, как и я
Где вы проходя ключ и секрет АМС, который будет использоваться в подписи process? –
Они заданы как переменные окружения. – Lauro182