Я пытаюсь реализовать подпись Amazon V4 для S3 через Laravel, я просмотрел множество документов, но ни одна из них не работает или я делаю неправильно, поэтому я попытался добавить зависимость для создания подписей V4
$filename = request()->file('file')->getClientOriginalName();
$acl = 'private';
$algorithm = 'AWS4-HMAC-SHA256';
$time = time();
$longdate = gmdate('Ymd\THis\Z', $time);
$successStatus = "201";
$expires = "86400";
$accesKeyId = env('AWS_ACCESS_KEY_ID');
$secret = env('AWS_SECRET_ACCESS_KEY');
$credential = join('/', [
$accesKeyId, # Your AWS access key ID
gmdate('Ymd', $time),
'region',
's3',
'aws4_request',
]);
# Example policy
$policy = [
'expiration' => gmdate('Y-m-d\TH:i:s\Z', strtotime('+2 hours', $time)),
'conditions' => [
['acl' => $acl],
['bucket' => 'sample-bucket'],
['starts-with', '$key', ''],
['x-amz-credential' => $credential],
['x-amz-algorithm' => $algorithm],
['x-amz-date' => $longdate],
],
];
$sigGen = new SignatureV4(
$secret,
$policy
);
$signature = $sigGen->generateSignature();
Он создает только подпись для V4, я точно не знаю, как отправить его с помощью запроса на загрузку laravel на S3, это код, который я пытался загрузить,
Storage::disk('s3')->put(
$filename,
file_get_contents(request()->file('file'))
);
А также япрошел учебник ,
Этот учебник загружает только файлы с подписями V4, что мне нужно,
- Можно ли скачать, загрузить, удалитьи перечислять файлы с помощью подписей V4 в laravel?
- Является ли вышеупомянутое руководство единственным способом реализации подписей V4 или любым другим способом?
- Могу ли я реализовать V4 с предоставленным выше кодом?
Я не знаю, что я делаю здесь неправильно, пожалуйста, помогите мне заранее.