AWS S3 是什麼?
更新日期: 2024 年 12 月 18 日
本文為 圖片上傳 AWS S3 系列教學,第 1 篇:
- AWS S3 是什麼? 👈 所在位置
- boto3 與 django-storages:如何在 Django 中對接 AWS S3
- AWS S3 與 IAM:圖片上傳功能的權限管理指南
- S3 與 Postgres 的比較與應用
- Amazon S3 物件所有權設定解析
- AWS S3「阻止所有公開訪問」設定說明
- Amazon S3 儲存桶版本控制完整指南
- 如何設定 S3 儲存桶的「預設加密」?—— 初學者指南
- S3 儲存桶標籤(Tags)簡單介紹:讓你的 S3 管理更輕鬆!
- AWS S3 物件鎖定功能入門指南
- AWS S3 公開存取權完整指南
- AWS CORS 預檢請求與設定指南
- AWS IAM 設定教學:生成訪問密鑰以用於 S3 配置
- django-storages 基本配置:讓應用程式連接 S3 存儲桶
- Django-storages 的完整配置教學:從隱密性到快取控制
- Django-storages 完整配置指南:從文件存儲到訪問路徑
- Django-storages 配置:環境變數設定
- Django-storages 與 STORAGES 配置:未來相容性的最佳實踐
- 如何在 Django 中移除 DEBUG URL 的靜態檔案配置
建議閱讀本文前,先閱讀完 圖片上傳功能 系列文
AWS S3(Amazon Simple Storage Service)是一種物件儲存服務。
專門用來存放各類型的資料,如圖片、影片、文件等,具有高度的可用性、擴展性和安全性,非常適合用於雲端應用及資料管理。
物件儲存的基本概念
- 什麼是物件儲存? 物件儲存是將資料與其元資料(Metadata)封裝為一個「物件」,並透過唯一的 ID 進行存取。
- 與傳統存儲的區別
- 傳統儲存:依賴階層式檔案系統,適合結構化資料。
- 物件儲存:無需階層式結構,適合大量非結構化數據(例如圖片、影片)。
AWS S3 的優勢
高可用性與耐久性
- S3 提供 99.999999999%(11個9) 的數據耐久性,保證資料的安全性與穩定性。
- 全球分散式儲存架構,使資料存取快速且可靠。
彈性與擴展性
- 不限制存放資料的數量與大小,無論是小型專案還是大規模應用都能輕鬆應對。
安全性與存取控制
- 透過 存取控制清單(ACL) 和 Bucket Policy,精確管理存取權限。
- 支援 HTTPS 傳輸與資料加密,保障資料在儲存與傳輸過程中的安全性。
成本彈性
- 根據需求選擇不同儲存類別:
- 標準存儲:頻繁存取的資料。
- 低頻存取(IA):偶爾存取的資料,成本較低。
- Glacier:長期備份與歸檔存儲,成本最低。
整合其他 AWS 服務
- 搭配 CloudFront(CDN)可加速全球用戶存取圖片或影片。
- 結合 Lambda 可進行圖片自動處理(如壓縮、縮放等)。
AWS S3 的圖片存放步驟
建立 S3 Bucket
- 登入 AWS 控制台,前往 S3 服務。
- 點擊「建立存儲桶」,輸入名稱並選擇儲存區域。
上傳圖片
- 可透過 AWS 控制台、CLI 或 SDK(如 Python 的 Boto3)將圖片上傳到 S3。
設置存取權限
- 若圖片需公開存取,可設定「Bucket Policy」或生成公開 URL。
- 若圖片需限制存取,可使用 IAM 權限或 Pre-signed URL。
加速圖片存取(可選)
- 使用 CloudFront 作為 CDN 加速全球存取速度。
- 配合 Lambda 或 ImageKit 進行圖片優化與處理。
具體應用場景
靜態資源儲存
- 儲存網站上的圖片、CSS、JS 等靜態內容。
使用者圖片存放
- 儲存個人頭像、上傳的媒體文件等。
圖片庫與備份
- 管理大量圖片資產,並提供分類和元資料支援。
- 低頻存取圖片可轉至 Glacier 進行成本優化。
靜態網站托管
- 使用 S3 托管圖片展示網站,透過 URL 直接存取內容。
小結
AWS S3 提供了強大的圖片儲存解決方案,無論是網站靜態資源管理,還是用戶上傳圖片儲存,都能透過高可用性、靈活性和安全性來滿足需求。
如果搭配 CDN 和圖片處理工具,還能進一步提升圖片的存取速度與效能。