Как получить закодированную в base64 строку объекта S3 от PHP S3 клиента - PullRequest
0 голосов
/ 25 февраля 2020

Я хочу получить закодированную в base64 строку объекта S3 непосредственно из клиента S3, а не преобразовывать URL-адрес S3 в base64 вручную.

Я попытался выполнить поиск по inte rnet, но не смог найти решение проблемы.

Вот мой минимальный код

Шаг 1: Получить URL-адрес S3 для объекта S3

$params = [
    'Bucket' => $bucket,
    'Key' => $key,
];

$cmd = $this->s3_client->getCommand('GetObject', $params); 
$request = $this->s3_client->createPresignedRequest($cmd, $expiration);
$s3Url = (string) $request->getUri(); // S3 URL

Шаг 2. Преобразование URL-адреса S3 в закодированную строку base64

try {
    $type = @explode('?', pathinfo($s3Url, PATHINFO_EXTENSION))[0];
    $data = file_get_contents($s3Url);
    $base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
} catch (Exception $ex) {
    $base64 = "";
}

Я хочу получить строку base 64 только из шага 1, выделив шаг 2. Будем благодарны за любые предложения / исправления.

API getobject ref: https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-s3-2006-03-01.html#getobject

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...