ふだんは2段階になる理由

Macのファイル転送アプリの多くは、すべての転送でMacを片方の端として扱います。ステージングサーバのフォルダをS3バケットに移すには、いったんMacにダウンロードし、そのフォルダを探して、バケットにアップロードします。待ち時間は2倍になり、あとで削除するコピーがディスクに残り、フォルダを取り違えるおそれもあります。

SSHサーバ同士なら、ターミナルで2つのホスト間のscpや、片方で実行するrsyncを使ってMacを経由せずに済みます。ただしそれは、両端がSSHに対応していて、コマンドを知っている場合の話です。S3、WebDAV、FTPには使えません。

サーバ間のコピー:手順

  1. AnyBucketを開き、⌘Tを押して新規タブを開きます。
  2. ⇧⌘Kを押して1つ目のサーバに接続します。または、⌘Kを押してブックマーク名を数文字入力します。
  3. 2つ目のパネルを開き(⌘\)、そのパネルのソースメニューからもう一方のサーバを選びます。
  4. ソースのパネルに戻り(⇥)、ファイルを探します。
  5. Spaceでファイルをマークします。または「+」を押して*.jpgのようなパターンを入力すると、一致するものがすべてマークされます。
  6. 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)の要確認に、エラーとともに表示されます。詳しくは転送が停止したをご覧ください。