Cache và CDN
IAUP hỗ trợ hai chiến lược delivery phổ biến: URL CDN public ổn định với cache busting, và presigned private URL.
CDN Mode
Phần tiêu đề “CDN Mode”Dùng CDN mode khi bucket hoặc object storage nằm sau public domain:
s3: use_presigned_url: false public_url_base: "https://cdn.example.com" path_scheme: "itemsadder/{uid}/{file}"IAUP tạo:
https://cdn.example.com/itemsadder/<uid>/generated.zipKhi public_url_base được đặt, IAUP không thêm tên bucket vào URL path.
Public endpoint không có CDN
Phần tiêu đề “Public endpoint không có CDN”Nếu public_url_base rỗng và path_style true với endpoint, IAUP tạo:
<endpoint>/<bucket>/<objectKey>Nếu path_style false, IAUP hỏi S3 SDK để lấy object URL.
Cache busting
Phần tiêu đề “Cache busting”Mặc định:
global: cache_bust: enabled: true param: "v" mode: "timestamp"Điều này thêm query string:
?v=<milliseconds>Mode:
| Mode | Value |
|---|---|
timestamp | millisecond hệ thống hiện tại |
uuid | random UUID không có dấu gạch |
UUID mode:
global: cache_bust: enabled: true param: "build" mode: "uuid"Tắt:
global: cache_bust: enabled: falseVersioning object key
Phần tiêu đề “Versioning object key”Thay vì query cache busting, có thể version object key:
s3: path_scheme: "itemsadder/{uid}/{ts}/{file}"Cách này tạo object path mới mỗi upload. Nó thân thiện với CDN, nhưng object cũ cần được cleanup riêng.
Presigned URL và cache
Phần tiêu đề “Presigned URL và cache”Presigned URL chứa query parameter chữ ký. Chúng unique và hết hạn. Dùng khi bucket phải private.
Tradeoff:
- bucket privacy mạnh hơn
- client caching kém ổn định hơn
- có thể download fail sau expiry
Với public Minecraft resource pack delivery, CDN mode thường dễ vận hành hơn.