前置作業
首先,在 AWS S3 新增一個水桶。接著,在安全憑證的頁面,建立一個具有存取 S3 權限的 IAM 角色,並新增一個存取金鑰。
實作
安裝套件。
1
| composer require league/flysystem-aws-s3-v3
|
更新 .env
檔。
1 2 3 4
| AWS_ACCESS_KEY_ID= AWS_SECRET_ACCESS_KEY= AWS_DEFAULT_REGION=ap-northeast-1 AWS_BUCKET=
|
更新 routes/api.php
檔。
1 2 3 4
| Route::get('/', function () { $result = Storage::disk('s3')->put('.env.example', '.env.example'); return response()->json($result); });
|
上傳檔案。
1
| curl http://localhost:8000/api
|
輸出結果如下:
S3 Policy
如果要公開所有物件,可以使用以下政策。
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "s3:GetObject", "Resource": "arn:aws:s3:::your-bucket-name/*" } ] }
|
參考資料