веб-сервисы Amazon — загрузка файла в S3 с использованием предварительно заданного URL-адреса в переполнении стека

Я разрабатываю веб-приложение с использованием PHP. В моем приложении мне нужно загрузить файл в корзину AWS S3, используя предварительно назначенный URL-адрес. Теперь я могу прочитать приватный файл из корзины S3, используя предварительно подписанную вот так.

$s3Client = new S3Client([
'version' => 'latest',
'region' => env('AWS_REGION', ''),
'credentials' => [
'key' => env('AWS_IAM_KEY', ''),
'secret' => env('AWS_IAM_SECRET', '')
]
]);

//GetObject
$cmd = $s3Client->getCommand('GetObject', [
'Bucket' => env('AWS_BUCKET',''),
'Key'    => 'this-is-uploaded-using-presigned-url.png'
]);

$request = $s3Client->createPresignedRequest($cmd, '+20 minutes');


//This is for reading the image. It is working.
$presignedUrl = (string) $request->getUri();

Когда я получаю доступ к $presignedUrl из браузера я могу получить файл с s3. Это работает. Но сейчас я загружаю файл на S3. Не читает файл с s3. Обычно я могу загрузить файл на S3 следующим образом.

$client->putObject(array(
'Bucket' => $bucket,
'Key'    => 'data.txt',
'Body'   => 'Hello!'
));

Приведенный выше код не использует предварительно подписанный URL. Но мне нужно загрузить файл, используя предварительно подписанный URL. Как я могу загрузить файл, используя предварительно подписанный URL. Например, я думаю, что-то вроде этого.

$client->putObject(array(
'presigned-url' => 'url'
'Bucket' => $bucket,
'Key'    => 'data.txt',
'Body'   => 'Hello!'
));

Как я могу загрузить?

3

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]