為什麼通常要分兩步
大多數 Mac 檔案傳輸 App 都把你的 Mac 當作每次傳輸的其中一端。要將資料夾從測試伺服器搬到 S3 儲存貯體,你得先下載到 Mac、再找到它,然後上傳到儲存貯體。這代表要等兩次、磁碟上多了一份之後得清理的副本,選錯資料夾時也容易出錯。
在終端機中,SSH 伺服器可以略過 Mac,在兩台主機之間使用 scp,或在其中一台上執行 rsync。這在兩端都支援 SSH 且你熟悉這些指令時可行,但對 S3、WebDAV 或 FTP 沒有幫助。
逐步從一台伺服器拷貝到另一台
- 打開 AnyBucket,按下 ⌘T 新增標籤頁。
- 按下 ⇧⌘K 連線到第一台伺服器,或按下 ⌘K 輸入它書籤名稱的幾個字母。
- 按下 ⌘\ 打開第二個窗格,然後從窗格的來源選單中選擇另一台伺服器。
- 按下 ⇥ 回到來源窗格,找到檔案。
- 用 Space 標記檔案,或按下 + 並輸入模式,例如
*.jpg,標記所有符合的檔案。 - 按下 F5 將它們拷貝到另一個窗格,或按下 F6 移動它們。
傳輸會加入窗格下方的佇列,你可以繼續工作。想不先打開目的地就直接選擇嗎?⌘G 會將標記的檔案拷貝到你在面板中選擇的任何書籤或資料夾,⌥⌘G 則會移動它們。
檔案如何傳送
AnyBucket 會為每次傳輸選擇路徑:
| 來源與目的地 | 檔案如何傳送 |
|---|---|
| 同一個 S3 帳號或儲存空間 | 在伺服器上以 CopyObject 執行 |
| 同一台 WebDAV 伺服器 | 在伺服器上以 COPY 和 MOVE 執行 |
| 同一台 SFTP 伺服器,帳號有 shell | 在伺服器上透過 SSH 以 cp 執行 |
| 兩台不同的伺服器 | 串流經過你 Mac 上一小塊有大小上限的暫存區 |
| 這台 Mac 與伺服器 | 直接上傳或下載 |
移動會先拷貝檔案、驗證副本,再刪除原始檔案。在副本完成之前,不會刪除任何東西。
任意混用兩種通訊協定
每一種通訊協定都能與其他任何一種雙向搭配使用:SFTP、FTP、FTPS、Amazon S3 與 S3 相容儲存空間(Cloudflare R2、Backblaze B2、Wasabi、DigitalOcean Spaces、Google Cloud Storage、MinIO)、透過 HTTP 和 HTTPS 的 WebDAV,以及這台 Mac。一些常見的工作:
- 發佈素材:從 SFTP 網頁伺服器到 S3 或 R2 儲存貯體。
- 更換服務供應商:從 Amazon S3 到 Cloudflare R2 或 Backblaze B2,一個儲存貯體接一個儲存貯體。
- 淘汰舊主機:從 FTP 伺服器到 WebDAV 共享或新的 SFTP 伺服器。
在 AnyBucket 的測試中,每一組有方向的通訊協定組合都會對真實伺服器進行端對端的拷貝和移動,並檢查每一個位元組。
檔案已經存在時
如果目的地已有同名檔案,AnyBucket 會在覆寫任何東西之前先詢問你。你可以取代它、只在你的檔案較新時取代、兩者都保留(副本會變成 name 2.ext)、略過它,或繼續拷貝只完成一部分的檔案,並將答案套用到這次傳輸的其餘項目。詳情請參閱衝突。
大型拷貝與連線中斷
伺服器之間的大型工作可能需要一段時間,因此佇列的設計就是要完成它們:
- 連線中斷或伺服器重新啟動時,會在 1、3 和 8 秒後以新的連線重試。
- 佇列會被保存。結束 AnyBucket 後,中斷的傳輸會在下次啟動時回來。
- 只要通訊協定允許,都會驗證檢查碼。
- 關閉最後一個視窗後,AnyBucket 會繼續在選單列中執行,傳輸也會繼續進行。
仍然失敗的項目會連同錯誤訊息,在「傳輸」視窗(⌥⌘T)的需要處理下等待。請參閱傳輸停止了。