sandbox_pull
sandbox_get 加上下載:把箱子裡的檔案寫到本機路徑,或把資料夾解開到那裡。只能經 stdio 轉接器用。
| 輸入 | 輸出 |
|---|---|
id、path、localPath、extract、clean(只能經轉接器) |
ok、localPath、bytes、extracted、files、paths;有的時候才有 removed、removedPaths、changedWhileReading、notes |
sandbox_pull(只能經轉接器)是 sandbox_get 加上下載:檔案寫到 localPath,目錄裡的東西直接解開到 localPath(extract: false 則保留 tar.gz)。path 收的跟 sandbox_get 一樣:相對於 /work(寫 /work/... 也行),或 /tmp/、/dev/shm/ 底下的絕對路徑。空檔案拿回來就是空檔案,經 symlink 指到的目錄會拿回它裡面的東西。箱子產出的東西(go mod tidy 之後的 go.mod、build 出來的 dist、formatter 的結果)用它拿回來,不要印出來再貼回去。本機路徑的參數叫 localPath(照 sandbox_sync 的習慣寫 dest 也收)。files 是寫了幾個檔,paths 是前 50 個。
解開時是疊在 localPath 原有的東西上,所以在箱子裡刪掉的檔,本機那份還在。"clean": true 讓 localPath 跟箱子那個資料夾完全一樣:先解到旁邊,解成功了才換過去,removed(與前 20 個 removedPaths)是拿掉了幾個本機檔。clean 不能用在 git checkout、家目錄、轉接器的工作目錄,以及包含它們的資料夾。
箱子裡還有東西在寫的資料夾(背景跑的測試)照樣拿得回來,打包時有變動的檔列在 changedWhileReading:那幾個可能是寫到一半的樣子,等寫完再拉一次。下載中會回報進度,兩分鐘沒有資料就回錯停下,第一條下載連結被拒時會重拿一條新的再試一次。
所有工具與主題都列在工具參考。