服務

檔案上傳與文件管理系統怎麼做?大檔分片、病毒掃描、權限與保存期限的完整規劃

2026.09.13 · 35 次瀏覽
檔案上傳與文件管理系統怎麼做?大檔分片、病毒掃描、權限與保存期限的完整規劃

從 2.3 GB 圖說傳不出去,到一套能追版本、能稽核、能自動過期的 DMS——含 4 個替代方案、6 個陷阱、真實 NT$ 報價與 90 天路線圖。

分享:

凌晨三點,第 14 次上傳失敗

一家工程顧問公司要把 2.3 GB 竣工圖說交給業主。Gmail 附件上限 25 MB、LINE 檔案 7 天過期,最後切成 9 個壓縮包丟免費空間——業主漏下載一段,整份作廢。他們統計全年花在重傳、找檔、對版本約 320 小時,人事成本逾 NT$25 萬,高於自建文件管理系統(DMS)的第一年總持有成本。

適用情境 × 不適用情境

✅ 適合自建 DMS❌ 不建議自建
單檔常超過 500 MB(圖說、影音)檔案都在 20 MB 內
要給外部廠商權限但不發帳號十人以下、無外部分享
需稽核誰在何時下載哪版無版本追溯需求
檔案要綁工單、合約、病歷純檔案倉庫、不接系統
受個資或保存期限規範無保存期限政策

最常誤判第四項:只想找地方放檔案,Dropbox Business 永遠划算;但要求檔案自動綁工單、簽收後鎖定,套裝工具就得靠膠水串接,成本反而失控。涉個資者另須符合《個人資料保護法》。

替代方案矩陣

方案優勢限制年成本
Google Workspace/Dropbox Business零開發、介面熟悉無法綁流程、分享權限粒度粗NT$3,600–6,000/人
SharePoint/OneDrive權限完整、整合 AD顧問費高、客製需 SPFx導入 NT$150,000–400,000
開源 Nextcloud/Paperless-ngx免授權費、外掛多需 DevOps、升級易壞、中文 OCR 不穩NT$60,000–120,000 維運
客製 Laravel DMS嵌進既有系統、權限全自訂投入高、需明確規格NT$180,000 起

完整流程拆解

階段時間交付物工具
1 盤點與權限建模5 天檔案清單、權限矩陣、保存期限政策Notion、Miro
2 儲存與上傳架構3 天儲存桶結構、分片策略、簽名 URL 流程S3 Multipart UploadCloudflare R2
3 介面設計5 天上傳/瀏覽/分享/稽核四畫面Figma
4 上傳管線10 天分片、續傳、去重、進度回報tus、Uppy、Laravel Filesystem
5 安全與治理7 天掃毒佇列、URL 有效期、下載稽核日誌ClamAV、Laravel Queue、Redis
6 流程綁定8 天掛載工單合約、簽收鎖定、到期封存Laravel Scheduler
7 壓測上線5 天5 GB 上傳報告、併發測試、維運手冊k6、UptimeRobot

合計 43 天,約 9–10 週。第 4 階段最關鍵:切成 5–10 MB 分片逐塊上傳,任一塊失敗只重傳那塊,不會因最後 3% 斷線全部重來。

真實成本完整拆解

  • ScriptWalker「文件管理系統(DMS)建置方案」:NT$180,000 起(上傳/權限/版本/稽核)
  • 流程綁定模組+NT$60,000–120,000;中文 OCR 全文檢索+NT$80,000

隱藏費用(以 1 TB 估):

  • 物件儲存:Cloudflare R2 約 US$0.015/GB/月(1 TB 約 NT$480/月),出口流量零費用
  • 改用 AWS S3:儲存約 US$0.023/GB/月,下載另計 US$0.09/GB——高下載量專案多半敗在這項
  • 掃毒主機:ClamAV 免授權費,仍需 1 vCPU/2 GB 容器約 NT$400/月
  • 異地備份再加 40–60% 儲存費;稽核日誌留存 3 年約 NT$300/月
  • 年度維護:開發費 15–20%,即 NT$27,000–36,000/年

第一年總持有成本約 NT$21–24 萬,與開頭浪費的 NT$25 萬打平。

實施真相 vs 客戶想像

客戶以為實際發生
上傳不就是個按鈕分片、續傳、去重、重試佔全案 35% 工時
掃毒加個套件就好須非同步跑並先進待審,同步掃描會讓 500 MB 檔逾時
權限分主管和員工盤點後平均 7–9 種角色,外部廠商還要切到專案層級
舊檔案匯進來很快網路磁碟機滿是重複檔與亂碼檔名,清洗 2–3 週
到期自動刪掉就好合約類不能真刪,須封存→通知→核准銷毀

常見陷阱 × 怎麼避開

  • 檔案經 PHP 中轉:撐爆記憶體與 upload_max_filesize。→ 前端簽名 URL 直傳儲存桶,後端只收 metadata。
  • 只驗副檔名:.php 改 .jpg 即繞過。→ 驗 MIME magic bytes、強制改名、儲存桶關執行權限。
  • 分享連結永久有效:外流等同永久公開。→ 簽名 URL 預設 15 分鐘到期,敏感檔限下載次數。
  • 沒有去重:同檔 12 人各傳一次,儲存費多 12 倍。→ 上傳前比對 SHA-256,重複檔只建關聯。
  • 版本靠檔名:「最終版_真的最終_v3」是災難起點。→ 系統層做版本鏈,檔名由系統產生。
  • 只記上傳不記下載:出事要查誰下載過。→ 核發簽名 URL 就落日誌,含帳號、IP、時間、版本。

成功指標 + 90 天路線圖

  • 30 天|穩定度:上傳成功率 ≥ 99%?找檔時間從 8 分鐘降到 1 分鐘內?重點修弱網、行動裝置、超大單檔的失敗長尾。
  • 60 天|採用率:部門週活躍 ≥ 70%?多少檔案還走 Email?未轉移部門多半卡在舊資料沒搬。
  • 90 天|治理:看權限誤設數、逾期文件數、儲存成長曲線,啟用自動封存。多數專案此時發現冷資料佔 60%,轉低頻儲存再省 30–40%。

決策清單

  • ☐ 最大單檔超過 500 MB?
  • ☐ 每月找不到最新版幾次?
  • ☐ 要開放給外部廠商嗎?
  • ☐ 要追蹤誰下載哪個版本?
  • ☐ 檔案要掛在工單或合約下?
  • ☐ 有法定或契約保存期限?
  • ☐ 到期封存還是真刪?誰核准?
  • ☐ 舊檔案多少 TB、放在哪?
  • ☐ 上線後誰管權限?
  • ☐ 要全文檢索與 OCR 嗎?
  • ☐ 年度儲存維運預算上限?

勾 7 項以上,客製 DMS 通常划算;3 項以內買 Dropbox Business 就好。

常見問題 FAQ

單檔最大能多大?

採分片直傳,上限由物件儲存決定:S3 相容的 multipart upload 單檔上限 5 TB、每片 5 MB–5 GB。我們標準壓測做到 5 GB 單檔。

病毒掃描會拖慢上傳嗎?

不會,掃描不在上傳流程裡。檔案傳完先標為掃描中,由 Laravel Queue 背景處理,通常 10–60 秒後轉可下載;完成前無法產生分享連結。

可以先做上傳,之後再補權限與稽核嗎?

不建議。權限模型決定資料表結構與儲存桶路徑,後補等於重構。合理分期是先完成上傳+權限+稽核核心,OCR 與簽核留第二期。

下一步

ScriptWalker 提供 30 分鐘免費檔案架構診斷:帶著現有存放方式與最大檔案大小,我們回一份「自建或買 SaaS」的判斷與預算。「文件管理系統(DMS)建置方案」NT$180,000 起,含需求訪談、權限建模、分片上傳管線與稽核日誌,9–10 週交付。

分享: