存儲API提供基於貯體的檔案存儲,類似於S3。上傳、下載和管理檔案,支援本機和S3相容儲存後端。
針對經過驗証的函數調用:
針對管理員端點:
使用上傳策略上傳物件
InsForge支援兩種類型的儲存後端:
- 本機儲存:檔案儲存在本機檔案系統上。用於開發或低容量生產。
- S3相容:檔案儲存在S3相容物件儲存上。用於高容量生產。
上傳檔案的步驟是:
- 取得上傳策略
- 上傳檔案
- 確認上傳(僅限S3)
步驟1:取得上傳策略
根據儲存後端取得最優上傳策略(直接或預簽名URL)。
上傳策略API根據儲存後端傳回最優上傳方法:
- 本機儲存:直接上傳到InsForge API
- S3相容:預簽名URL用於直接上傳到S3
請求本文
| 欄位 | 類型 | 必需 | 說明 |
|---|
filename | string | 是 | 原始檔案名稱 |
contentType | string | 否 | 檔案的MIME類型 |
size | integer | 否 | 檔案大小(位元組) |
回應(S3後端)
回應(本機儲存)
步驟2:上傳檔案
使用提供的方法將檔案上傳到指定的URL。
- 本機儲存:使用PUT請求到
uploadUrl,使用multipart/form-data和file欄位。
- S3相容:使用POST請求到
uploadUrl,使用multipart/form-data和file欄位。包括請求中fields物件的所有欄位。
步驟3:確認預簽名上傳(僅限S3)
確認檔案已成功使用預簽名URL上傳到S3。
請求本文
| 欄位 | 類型 | 必需 | 說明 |
|---|
size | integer | 是 | 檔案大小(位元組) |
contentType | string | 否 | 檔案的MIME類型 |
etag | string | 否 | 上傳物件的S3 ETag |
上傳物件(已淘汰)
使用特定金鑰將檔案上傳到貯體。
路徑參數
| 參數 | 類型 | 說明 |
|---|
bucketName | string | 貯體的名稱 |
objectKey | string | 物件金鑰(可以包括/用於虛擬資料夾) |
請求本文
multipart/form-data帶有file欄位。
使用自動產生的金鑰上傳(已淘汰)
使用自動產生的唯一金鑰上傳檔案。
使用下載策略下載物件
InsForge支援兩種類型的儲存後端:
- 本機儲存:檔案儲存在本機檔案系統上。用於開發或低容量生產。
- S3相容:檔案儲存在S3相容物件儲存上。用於高容量生產。
下載檔案的步驟是:
- 取得下載策略
- 從傳回的URL下載檔案
步驟1:取得下載策略
根據儲存後端和貯體可見性取得最優下載策略(直接URL或預簽名URL)。
下載策略API根據儲存後端和貯體可見性傳回最優下載方法:
- 本機儲存:從InsForge API直接下載
- S3相容:S3的預簽名URL。
過期時間(用於預簽名URL)從貯體的
可見性自動計算伺服器端。端點不需要請求本文。objectKey可能包含
/(虛擬資料夾)——不要百分比編碼分隔符。POST /api/storage/buckets/{bucketName}/objects/{objectKey}/download-strategy
在原始路徑上保留為已淘汰的別名,以支援較舊的SDK
版本,將在未來的主要版本中移除。遷移到GET。
回應(S3公開貯體)
回應(S3私人貯體)
步驟2:下載檔案
使用適當的方法從傳回的URL下載檔案。
下載物件(已淘汰)
從貯體下載檔案。
二進位檔案內容,具有適當的Content-Type和Content-Length標頭。
刪除物件
從貯體中刪除檔案。
列出貯體中的物件
列出貯體中的所有物件,支援選用篩選。
查詢參數
| 參數 | 類型 | 說明 |
|---|
prefix | string | 按金鑰前置詞篩選(例如,users/) |
search | string | 按金鑰搜尋物件(部分相符) |
limit | integer | 傳回的最大物件數(1-1000,預設:100) |
offset | integer | 要跳過的物件數 |
貯體管理(管理員)
列出所有貯體
建立貯體
請求本文
| 欄位 | 類型 | 必需 | 說明 |
|---|
bucketName | string | 是 | 貯體名稱(英數字、下底線、連字號) |
isPublic | boolean | 否 | 貯體是否可公開存取(預設:true) |
更新貯體
請求本文
| 欄位 | 類型 | 必需 | 說明 |
|---|
isPublic | boolean | 是 | 貯體是否可公開存取 |
刪除貯體
錯誤回應
找不到貯體(404)
找不到物件(404)
無效檔案(400)
貯體已存在(409)