Logo

新人日誌

首頁關於我部落格

新人日誌

Logo

網站會不定期發佈技術筆記、職場心得相關的內容,歡迎關注本站!

網站
首頁關於我部落格
部落格
分類系列文

© 新人日誌. All rights reserved. 2020-present.

Amazon S3 儲存桶版本控制完整指南

最後更新:2025年3月4日資料庫

本文為 圖片上傳 AWS S3 系列教學,第 7 篇:

  1. AWS S3 是什麼?
  2. boto3 與 django-storages:如何在 Django 中對接 AWS S3
  3. AWS S3 與 IAM:圖片上傳功能的權限管理指南
  4. S3 與 Postgres 的比較與應用
  5. Amazon S3 物件所有權設定解析
  6. AWS S3「阻止所有公開訪問」設定說明
  7. Amazon S3 儲存桶版本控制完整指南 👈 所在位置
  8. 如何設定 S3 儲存桶的「預設加密」?—— 初學者指南
  9. S3 儲存桶標籤(Tags)簡單介紹:讓你的 S3 管理更輕鬆!
  10. AWS S3 物件鎖定功能入門指南
  11. AWS S3 公開存取權完整指南
  12. AWS CORS 預檢請求與設定指南
  13. AWS IAM 設定教學:生成訪問密鑰以用於 S3 配置
  14. django-storages 基本配置:讓應用程式連接 S3 存儲桶
  15. Django-storages 的完整配置教學:從隱密性到快取控制
  16. Django-storages 完整配置指南:從文件存儲到訪問路徑
  17. Django-storages 配置:環境變數設定
  18. Django-storages 與 STORAGES 配置:未來相容性的最佳實踐
  19. 如何在 Django 中移除 DEBUG URL 的靜態檔案配置

建議閱讀本文前,先閱讀完 圖片上傳功能 系列文

Amazon S3 的「儲存桶版本控制」功能,讓你能夠保留檔案的多個版本,有效防止誤刪、誤改,並支援還原到先前版本。

這功能非常類似於「檔案版本管理系統」,適合有歷史記錄需求或需要保護重要檔案的使用者。


儲存桶版本控制的功能與原理

多版本存儲

  • 啟用版本控制後,每次上傳相同名稱的檔案時,S3 會保留舊版本,並建立新版本。
  • 每個版本都會有一個 唯一版本 ID,用於識別和管理。

版本管理

  • 使用 版本 ID 來讀取、刪除或還原特定版本。
  • 刪除檔案時,系統只會新增「刪除標記」,而不會真正刪除所有舊版本,方便回復檔案。

防止意外刪除

  • 檔案刪除操作會新增「刪除標記」,讓檔案看起來被刪除,但實際上所有版本仍存在。
  • 可輕鬆找回任意先前版本,避免資料遺失。

支援歷史記錄回溯

  • 適用於需要保留歷史版本的檔案,例如:文件、日誌、設定檔案等。

具體操作與範例

啟用版本控制前

上傳相同名稱的檔案時:

  • 新檔案會直接覆蓋舊檔案,舊版本將無法還原。

啟用版本控制後

  1. 第一次上傳檔案
    • 檔名:myfile.txt
    • 版本 ID:v1
  2. 第二次上傳同名檔案
    • S3 會保留 v1,並新增版本 v2。
  3. 刪除檔案操作
    • S3 會新增一個「刪除標記」,不會真正刪除檔案所有版本。
  4. 還原檔案
    • 透過版本 ID,例如 v1,即可還原到任意版本。

版本控制的優缺點

優點

  1. 防止資料遺失:檔案保留歷史版本,避免誤刪或誤覆蓋。
  2. 支援回復功能:可以隨時還原到任意先前版本。
  3. 防誤刪機制:刪除檔案只會標記,而非真正刪除。

缺點

  1. 增加儲存成本:每個版本都會佔用儲存空間。
  2. 管理較複雜:需要額外工具或機制來清理不需要的版本。

何時應啟用版本控制?

適用情境

  • 防止檔案被誤刪或覆蓋。
  • 需要保留檔案歷史記錄,例如:文件、日誌、圖片等。
  • 適用於正式環境,尤其是保護重要資料的應用。

不適用情境

  • 測試或臨時儲存空間,不需保留歷史版本。
  • 檔案儲存成本有限,且不需要回溯功能。

儲存成本考量

  • 每次上傳同名檔案,S3 都會保留新版本和舊版本,儲存成本隨時間增加。
  • 刪除檔案只會新增「刪除標記」,仍保留所有版本,進一步佔用空間。
  • 如無自動清理機制,長期存放可能帶來管理與成本壓力。

小結

  • Amazon S3 儲存桶版本控制 提供強大的版本管理功能,適合需要保留檔案歷史、回溯或防誤刪的應用。
  • 啟用版本控制需謹慎考慮儲存成本與管理需求。
  • 若專案只需存放「最新版本」檔案,建議不啟用版本控制,簡化管理並節省成本。

判斷啟用版本控制的依據

  1. 你的專案是否需要檔案歷史記錄?
  2. 是否擔心誤刪、誤改重要檔案?
  3. 能否接受額外的儲存成本?

若後續專案需求改變,可以隨時啟用 S3 版本控制,達到檔案版本保護的最佳效果。

目前還沒有留言,成為第一個留言的人吧!

發表留言

留言將在審核後顯示。

資料庫

目錄

  • 儲存桶版本控制的功能與原理
  • 多版本存儲
  • 版本管理
  • 具體操作與範例
  • 啟用版本控制前
  • 啟用版本控制後
  • 版本控制的優缺點
  • 何時應啟用版本控制?
  • 儲存成本考量
  • 小結
  • 判斷啟用版本控制的依據