54178f6d70
實作 cloud-ready-s3-storage 的程式碼部分(tasks 1-3):
- config/filesystems.php:public disk 的 driver 改吃 FILESYSTEM_DISK env,
切換為 s3 時不需改動既有 6 個 Storage::disk('public') 呼叫點
- .env.example:FILESYSTEM_DISK 維持 local 預設(本機無 S3 服務),補齊
AWS_ENDPOINT/AWS_URL/AWS_USE_PATH_STYLE_ENDPOINT 供 R2 等服務使用
- 新增 storage:migrate-to-s3 指令:一次性把 storage/app/public 既有檔案
上傳到 S3,來源固定讀本機磁碟(不受 FILESYSTEM_DISK 影響),支援
--dry-run,失敗不中斷且不刪除本機檔案
- 新增測試:遷移指令(上傳/dry-run/部分失敗)+ public disk 在 local
driver 下零 AWS credentials 也能正常運作
239 tests passed / 578 assertions,容器內驗證無回歸。
R2 環境準備、VPS 部署與實際切換(tasks 4-6)待 Hank 自行處理。
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011LpcY9b7y9x4fusHBTXciQ
88 lines
2.0 KiB
Bash
88 lines
2.0 KiB
Bash
APP_NAME=Laravel
|
||
APP_ENV=local
|
||
APP_KEY=
|
||
APP_DEBUG=true
|
||
APP_TIMEZONE=UTC
|
||
APP_URL=http://localhost
|
||
FRONTEND_URL=http://localhost:5173
|
||
|
||
APP_LOCALE=en
|
||
APP_FALLBACK_LOCALE=en
|
||
APP_FAKER_LOCALE=en_US
|
||
|
||
APP_MAINTENANCE_DRIVER=file
|
||
APP_MAINTENANCE_STORE=database
|
||
|
||
BCRYPT_ROUNDS=12
|
||
|
||
LOG_CHANNEL=stderr
|
||
LOG_DEPRECATIONS_CHANNEL=null
|
||
LOG_LEVEL=debug
|
||
|
||
DB_CONNECTION=sqlite
|
||
# DB_HOST=127.0.0.1
|
||
# DB_PORT=3306
|
||
# DB_DATABASE=laravel
|
||
# DB_USERNAME=root
|
||
# DB_PASSWORD=
|
||
# MYSQL_ROOT_PASSWORD=
|
||
|
||
SESSION_DRIVER=redis
|
||
SESSION_LIFETIME=120
|
||
SESSION_ENCRYPT=false
|
||
SESSION_PATH=/
|
||
SESSION_DOMAIN=null
|
||
|
||
BROADCAST_CONNECTION=log
|
||
FILESYSTEM_DISK=local # 本機開發維持 local;雲端部署改為 s3 時需一併設定下方 AWS_* 變數(含 AWS_ENDPOINT/AWS_URL)
|
||
QUEUE_CONNECTION=redis # 雲端建議值;database 效能較差且不利擴容
|
||
|
||
CACHE_STORE=redis
|
||
CACHE_PREFIX=
|
||
|
||
MEMCACHED_HOST=127.0.0.1
|
||
|
||
REDIS_CLIENT=predis
|
||
REDIS_HOST=redis
|
||
REDIS_PASSWORD=null
|
||
REDIS_PORT=6379
|
||
|
||
MAIL_MAILER=smtp
|
||
MAIL_HOST=127.0.0.1
|
||
MAIL_PORT=2525
|
||
MAIL_USERNAME=null
|
||
MAIL_PASSWORD=null
|
||
MAIL_ENCRYPTION=null
|
||
MAIL_FROM_ADDRESS="hello@example.com"
|
||
MAIL_FROM_NAME="${APP_NAME}"
|
||
|
||
AWS_ACCESS_KEY_ID=
|
||
AWS_SECRET_ACCESS_KEY=
|
||
AWS_DEFAULT_REGION=us-east-1
|
||
AWS_BUCKET=
|
||
AWS_ENDPOINT= # S3 相容服務(如 Cloudflare R2)的 endpoint URL,AWS S3 本身留空即可
|
||
AWS_URL= # 公開存取用的網址前綴(如 R2 公開網域),留空時 fallback 為 AWS SDK 預設組法
|
||
AWS_USE_PATH_STYLE_ENDPOINT=false # Cloudflare R2 需設為 true
|
||
|
||
VITE_APP_NAME="${APP_NAME}"
|
||
|
||
SENTRY_LARAVEL_DSN=
|
||
SENTRY_ENVIRONMENT="${APP_ENV}"
|
||
|
||
REVERB_APP_ID=
|
||
REVERB_APP_KEY=
|
||
REVERB_APP_SECRET=
|
||
REVERB_HOST=localhost
|
||
REVERB_PORT=8085
|
||
REVERB_SCHEME=http
|
||
|
||
VITE_REVERB_APP_KEY="${REVERB_APP_KEY}"
|
||
VITE_REVERB_HOST="${REVERB_HOST}"
|
||
VITE_REVERB_PORT="${REVERB_PORT}"
|
||
VITE_REVERB_SCHEME="${REVERB_SCHEME}"
|
||
|
||
# Swagger UI — API 伺服器 Base URL(結尾不加斜線)
|
||
# 本地:http://localhost:8080/api
|
||
# 生產:https://api.hank-space.com/api
|
||
L5_SWAGGER_CONST_HOST=http://localhost:8080/api
|
||
L5_SWAGGER_GENERATE_ALWAYS=false |