S3 上傳器
當自動化執行需要持久化的產出物儲存時使用此技能:CSV 報表、PDF、JSON 檢查點、螢幕截圖、模型輸出或日誌,這些資料應存在於本機之外。此輔助程式針對通用的 S3 相容儲存服務,並僅從環境變數讀取儲存桶、端點和憑證。
何時叫用
- 使用者說:「將這份報表上傳到 S3」、「將產出物儲存到物件儲存」、「下載最後一次執行的檔案」、「使用 MinIO/R2/Spaces」。
- 對話中的程式碼會在本機寫入檔案,但需要一個可攜帶的傳遞或封存位置。
何時不應叫用
- 產出物僅需在同一行程內使用;保留在磁碟上即可。
- 使用者需要一個具有快取失效和簽署 URL 功能的公開網站 CDN 工作流程。
具體範例
使用者輸入:
爬蟲完成後,將產生的 CSV 上傳到我的 S3 相容儲存桶。
輸出:
# 將 assets/s3.py 複製到你的專案中,然後:
from s3 import upload_file
key = upload_file("out/daily_report.csv", key="reports/daily_report.csv")
print("已上傳:", key)
輔助程式會從環境變數讀取 S3_BUCKET、S3_ACCESS_KEY_ID、S3_SECRET_ACCESS_KEY、可選的 S3_ENDPOINT_URL 以及可選的 S3_REGION。不會提交任何特定於目標或機密的內容。
要套用的模式
- 將儲存桶名稱、端點、存取金鑰和秘密金鑰僅保留在環境變數中。
- 使用確定性的物件金鑰,例如
reports/YYYY-MM-DD/name.csv,以便重新執行時易於尋找。 - 僅在本機檔案完成後才上傳;絕不串流傳輸尚未寫完的產出物。
- 透過傳遞
endpoint_url來支援 S3 相容端點,而不是硬編碼 AWS。 - 當缺少環境變數或用戶端函式庫時,以明確的設定錯誤訊息終止。
參考資料:assets/s3.py。
來源
萃取自作者自動化專案中的實際使用經驗。v1.0.0。 另請參閱:[[csv-report-writer]]、[[playwright-pdf-snapshot]]、[[pipeline-orchestrator]]。
→ 使用 Trawlkit 構建完整的可執行機器人。