相容狀態
雲沙箱當前不支援檔案自訂中繼資料。普通檔案寫入、讀取以及 getInfo()、list()、rename() 返回的常規檔案元資訊不受影響。
檔案自訂中繼資料與 Sandbox 控制面中繼資料是兩項不同能力:
檔案自訂中繼資料通過
sandbox.files.write(..., metadata=...)寫入,並隨檔案儲存。雲沙箱當前不支援該能力。Sandbox 控制面中繼資料在建立 Sandbox 時通過
Sandbox.create(..., metadata=...)寫入,用於標記、查詢和關聯 Sandbox。該能力不受本限制影響。
失敗行為
Python SDK e2b==2.31.0 的 files.write() 方法簽名接受 metadata。這不代表當前後端已支援該能力。
Sandbox 當前上報 envd 0.5.2,而 SDK 要求檔案自訂中繼資料使用 envd 0.6.2 或以上版本。調用會在請求發送前失敗:
e2b.exceptions.TemplateException:
File metadata requires envd 0.6.2 or later.因此,這類異常不是 Python 參數不存在,也不影響未傳入 metadata 的普通檔案讀寫。升級 SDK 或僅修改 envd 版本號碼聲明無法繞過限制;該能力需要運行環境完整支援中繼資料校正、鍵名小寫化和擴充屬性持久化。
替代方案
在檔案自訂中繼資料開放前,可以選擇以下方案:
將檔案標籤儲存在業務資料庫或Object Storage Service中,並使用 Sandbox ID 和檔案路徑建立關聯。
在同一目錄寫入 JSON 資訊清單檔,記錄檔案路徑和業務標籤。需要跨 Sandbox 保留資料時,同時把檔案與清單寫入 NAS、OSS 等外部儲存。
如果只需要標記或查詢 Sandbox,使用 Sandbox 控制面
metadata,不要將其當作檔案中繼資料。