先週 U-File が登録受付を開始したタイミングでアカウントを登録し、容量無制限・2T のトラフィックを利用できるストレージを無料で手に入れました。しばらく待ってようやく審査に通過した後、コンソールを確認してみると、使用しているのはおそらく又拍雲のオブジェクトストレージのようでした。又拍雲が提供しているツールをいくつか試してみましたが、どれも正常に使用できました。
唯一少し残念なのは、又拍雲ストレージがまだミラーリングによるオリジン取得に対応していないことです。アリババの OSS、テンセントの COS、百度の BOS という大手 3 社のオブジェクトストレージや、七牛雲のような小規模プロバイダーでさえミラーリングによるオリジン取得に対応しているのに、又拍雲が対応していないのは不思議な話です。
ミラーリングによるオリジン取得に対応しておらず、しかも U-File を使って画像ホスティングのミラーリングアクセラレーションを行いたかったため、別の方法を取るしかありませんでした。そこで又拍雲のドキュメントから UPX コマンドラインツールを見つけました。その中の sync は、ローカルパスを又拍雲のオブジェクトストレージへ同期するために使用できます。ミラーリングによるオリジン取得は実現できませんが、クラウドストレージのデータをローカルと同期できるので、これもミラーリングの別の形式といえます。
プロジェクト紹介
UPX は開発者向けに設計された、コマンドラインベースのクラウドストレージ管理ツールです。ファイルのアップロード・ダウンロード、増分ファイル同期、ディレクトリの作成・削除、ファイル削除(非同期ファイル一括削除を含む)などを実行できます。
オープンソースプロジェクト:https://github.com/upyun/upx
詳細については、プロジェクトの README を参照してください。
ここでは主に、CentOS 上で upx を使用してローカルファイルを又拍雲ストレージへ同期する方法について説明します。
UPX のインストール
# 64 位系统下载
wget -O /usr/local/bin/upx http://collection.b0.upaiyun.com/softwares/upx/upx-linux-amd64-v0.2.6
# 32 位系统下载
wget -O /usr/local/bin/upx http://collection.b0.upaiyun.com/softwares/upx/upx-linux-386-v0.2.6
# 给予权限
chmod +x /usr/local/bin/upx
インストール後、upx と直接入力して、インストールが成功したかどうかを確認できます。

コマンド紹介
すべてのコマンドは
-hによる使用方法の確認に対応しています。
| コマンド | 説明 |
|---|---|
| login | 又拍雲ストレージにログイン |
| logout | アカウントからログアウト |
| sessions | すべてのセッションを表示 |
| switch | セッションを切り替え |
| info | サービス名、ユーザー名などの情報を表示 |
| cd | 作業ディレクトリを変更(ディレクトリに移動) |
| pwd | 現在のディレクトリを表示 |
| mkdir | ディレクトリを作成 |
| ls | 現在のディレクトリ内のファイルとディレクトリ情報を表示 |
| tree | ディレクトリ構造を表示 |
| get | ファイルまたはディレクトリをダウンロード |
| put | ファイルまたはディレクトリをアップロード |
| rm | ディレクトリまたはファイルを削除 |
| sync | ディレクトリの増分同期、rsync に類似 |
| auth | スペース名・オペレーター・パスワード情報を含む auth 文字列を生成 |
| post | 非同期処理タスクを送信 |
| purge | CDN キャッシュ更新タスクを送信 |
| global options | 説明 |
|---|---|
| --quiet, -q | 情報を表示しない |
| --auth value | auth 文字列 |
| --help, -h | ヘルプ情報を表示 |
| --version, -v | バージョン番号を表示 |
又拍雲へのログイン
upx login コマンドを入力し、サービス名、オペレーター、オペレーターのパスワードを順番に入力して Enter キーを押します。Welcome to と表示されれば、ログイン成功です。
upx info を入力すると情報を確認できます。CurrentDir は現在のディレクトリ、Usage は使用済み容量を表します。

UPX は複数アカウントでのログインにも対応しています。upx sessions を使用してすべてのログインセッションを確認し、upx switch を使用してセッションを切り替えられます。余分なアカウントを持っていないため、ここでは実演しません。
ファイルの同期
まず cd で同期するディレクトリを開き、その後 upx sync を使用して同期します。
たとえば、upx sync 2020/ /2020/ と入力すると、現在のディレクトリにある 2020 フォルダーを、又拍雲ストレージのルートディレクトリ下にある 2020 フォルダーへ同期します。

同期が完了すると上記のメッセージが表示されます。FTP ツールで U-File に接続すると、2020 ディレクトリが完全に同期されていることを確認できます。

この方法は、他の Web サイトプログラムの静的リソースの同期にも使用できます。
WordPress
upx sync wp-content/uploads/ /wp-content/uploads/
Typecho
upx sync usr/uploads/ /usr/uploads/
Flarum
upx sync public/assets/ /public/assets/
Web サイトのルートディレクトリを直接同期することは絶対に避けてください。ルートディレクトリには、WordPress の wp-config.php ファイルのような config 設定ファイルが含まれている可能性があり、そこにはデータベースなどの重要な情報が含まれています。又拍雲ストレージにアップロードすると誰でもダウンロードできるため、安全性に重大な影響を及ぼします。
定期同期
現在、upx sync は増分同期方式を使用しており、リアルタイム同期にはまだ対応していません。そのため、定期同期を実現するにはスケジュールタスク方式を選択するしかありません。
ここでは宝塔パネルのスケジュールタスクを使用します。Crontab よりも簡単に使用できます。
注意が必要なのは、スケジュールタスク内で upx sync を実行する場合、同期するディレクトリをシステムルート基準のパスに変更する必要があることです。

1 分ごとに同期するよう設定しました。1 分後にログを確認すると、同期が正常に行われていることがわかります。
+=============+=========+===========+================+===========+=============+
| SYNC_EXISTS | SYNC_OK | SYNC_FAIL | SYNC_NOT_FOUND | DELETE_OK | DELETE_FAIL |
+-------------+---------+-----------+----------------+-----------+-------------+
| 571 | 0 | 0 | 0 | 0 | 0 |
+-------------+---------+-----------+----------------+-----------+-------------+
----------------------------------------------------------------------------
★[2020-05-30 13:50:04] Successful
----------------------------------------------------------------------------