Bỏ qua để đến nội dung

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.

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.zip

Khi public_url_base được đặt, IAUP không thêm tên bucket vào URL path.

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.

Mặc định:

global:
cache_bust:
enabled: true
param: "v"
mode: "timestamp"

Điều này thêm query string:

?v=<milliseconds>

Mode:

ModeValue
timestampmillisecond hệ thống hiện tại
uuidrandom 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: false

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 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.