前提・実現したいこと
laravelでのpre-sigined URLでs3に直接アップロードすることを行いたいです。
https://qiita.com/ytanaka3/items/ad150811df54aa7434fb
発生している問題・エラーメッセージ
laravelで作成したURLを実行した際にS3にファイルは保存されて,ファイルサイズも正しくひょうじされているもののそのファイルを開くと下記のメッセージが表示されます。画像、動画共にダメです。 ファイルが壊れているか、“プレビュー”が認識しないフォーマットを使用している可能性があります。
該当のソースコード
php
1 $s3Client = new S3Client([ 2 'version' => 'latest', 3 'region' => Env('AWS_DEFAULT_REGION'), 4 ]); 5 6 7 $path = 'test/image/asd.jpg'; 8 $cmd = $s3Client->getCommand('PutObject', [ 9 'Bucket' => env('AWS_BUCKET'), 10 'Key' => $path, 11 ]); 12 13 14 $request = $s3Client->createPresignedRequest($cmd, '+20 minutes'); 15 $presignedUrl = (string)$request->getUri(); 16 return $presignedUrl;
curl
1curl -X PUT \ 2 'https://your-bucket-name.s3.ap-northeast-1.amazonaws.com/tmp/asdf.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIxxxxxxxxxxxxxxx%2F20190117%2Fap-northeast-1%2Fs3%2Faws4_request&X-Amz-Date=20190117T103740Z&X-Amz-Expires=900&X-Amz-SignedHeaders=host&X-Amz-Signature=3e6d8de19dca1079f43468a9b03d2a06b80a98f9dee7399431xxxxxxxxx' \ 3 -F file=/path/to/asdf.jpg
試したこと
CORSの問題かと思い変更しましたがだめでした。
ご存知の方、ご教示お願いいたします。
"aws/aws-sdk-php": "^3.128",
あなたの回答
tips
プレビュー