ふだんは2段階になる理由
Macのファイル転送アプリの多くは、すべての転送でMacを片方の端として扱います。ステージングサーバのフォルダをS3バケットに移すには、いったんMacにダウンロードし、そのフォルダを探して、バケットにアップロードします。待ち時間は2倍になり、あとで削除するコピーがディスクに残り、フォルダを取り違えるおそれもあります。
SSHサーバ同士なら、ターミナルで2つのホスト間のscpや、片方で実行するrsyncを使ってMacを経由せずに済みます。ただしそれは、両端がSSHに対応していて、コマンドを知っている場合の話です。S3、WebDAV、FTPには使えません。
サーバ間のコピー:手順
- AnyBucketを開き、⌘Tを押して新規タブを開きます。
- ⇧⌘Kを押して1つ目のサーバに接続します。または、⌘Kを押してブックマーク名を数文字入力します。
- 2つ目のパネルを開き(⌘\)、そのパネルのソースメニューからもう一方のサーバを選びます。
- ソースのパネルに戻り(⇥)、ファイルを探します。
- Spaceでファイルをマークします。または「+」を押して
*.jpgのようなパターンを入力すると、一致するものがすべてマークされます。 - F5で反対側のパネルにコピー、F6で移動します。
転送はパネルの下のキューに追加され、そのまま作業を続けられます。転送先を開かずに選びたい場合は、⌘Gを押すと、パレットで選んだ任意のブックマークやフォルダにマークしたファイルをコピーでき、⌥⌘Gで移動できます。
ファイルはどう転送されるか
AnyBucketは、転送ごとに経路を選びます:
| 転送元と転送先 | ファイルの転送方法 |
|---|---|
| 同じS3アカウントまたはストレージ | サーバ上でCopyObjectを使用 |
| 同じWebDAVサーバ | サーバ上でCOPYとMOVEを使用 |
| 同じSFTPサーバ、シェルのあるアカウント | サーバ上でSSH経由のcpを使用 |
| 異なる2つのサーバ | Mac上の容量が限られた小さなバッファを経由してストリーミング |
| このMacとサーバ | 直接アップロードまたはダウンロード |
移動では、ファイルをコピーし、コピーを検証してから元のファイルを削除します。コピーができる前に何かが削除されることはありません。
どの2つのプロトコルでも
どのプロトコルも、ほかのすべてのプロトコルと双方向に使えます: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)の要確認に、エラーとともに表示されます。詳しくは転送が停止したをご覧ください。