起因:Google Drive 分享連結的慘案
之前同事用 Google Drive 的分享連結來產生 QR Code,並把 QR Code 印在產品 DM 上。結果後來更新檔案時,分享連結也跟著變了,QR Code 就直接失效了⋯⋯(超大慘案。
後來檢討時,大家達成共識:未來要印 QR Code 分享檔案,一定要用我們自己的網址。這樣之後若想更動檔案,我們還可以加一些 redirect 規則,讓 QR Code 掃下去不至於會 404。
最初的想法
我一開始很直覺的做法是:讓同事把檔案給我,然後我丟上 Cloudflare Pages 去 host,並設定 custom domain 為公司網域。這樣就可以用「公司 domain + 檔名」的方式來分享檔案。
這個做法的確可以運作,唯一的問題是我將成為 single point of failure。
方案研擬
後來也想了很多方案:架個簡單的 FTP server、用 Cloudflare Worker + KV 來做 mapping、用 Cloudflare Access 來做 auth⋯⋯但這些方案不是太麻煩就是太複雜,總覺得殺雞焉用牛刀。
最後選定的方案是:直接利用公司內部本來就架好的 GitLab。我先設定好 CI/CD 來把檔案 deploy 上 Cloudflare Pages,並讓非工程師的同事直接用 GitLab 的 Web GUI 來上傳檔案。
這樣一來:
- 不用擔心我在 deploy 時不小心把上面的檔案給刪掉 (we as humans often make mistakes.)
- 可以利用 GitLab 既有的權限管理來驗證身份
- 還有版本控制,檔案異動都有記錄可查
重點是要做的事情很少、要維護的東西也很少,非常符合經濟效益!