UPXを使用してローカルファイルを又拍雲オブジェクトストレージに同期する

7,796 1

先週、U-File が登録受付を開始したタイミングでアカウントを登録し、容量無制限・2TB のトラフィックが利用できるスペースを無料で手に入れました。しばらく待ってようやく審査に通過したのでコンソールを確認したところ、利用しているのはおそらく又拍雲オブジェクトストレージのようでした。又拍雲が提供しているツールをいくつか試してみましたが、どれも正常に利用できました。

唯一少し残念なのは、又拍雲ストレージがまだミラーリングによるオリジン取得に対応していないことです。奇妙なことに、Alibaba Cloud OSS、Tencent Cloud COS、Baidu BOS という大手 3 社のオブジェクトストレージや、七牛雲のような比較的小規模なサービスでさえミラーリングによるオリジン取得に対応しているのに、又拍雲はなぜか追随していません。

ミラーリングによるオリジン取得に対応しておらず、しかも U-File を使って画像ホスティングのミラーリングによる高速化を行いたかったため、別の方法を取るしかありませんでした。そこで又拍雲のドキュメントから UPX コマンドラインツールを見つけました。このツールには sync という機能があり、ローカルパスを又拍雲オブジェクトストレージへ同期できます。ミラーリングによるオリジン取得は実現できませんが、クラウドストレージのデータをローカルと同期できるため、これもミラーリングの別の形と言えるでしょう。

プロジェクト紹介

UPX は開発者向けに設計された、コマンドラインベースのクラウドストレージ管理ツールです。ファイルのアップロード・ダウンロード、増分ファイル同期、ディレクトリの作成・削除、ファイルの削除(非同期ファイルの一括削除を含む)などを実行できます。

オープンソースプロジェクト:https://github.com/upyun/upx

詳しい紹介については、プロジェクトの README を参照してください。

ここでは主に、CentOS 上で upx を使用してローカルファイルを又拍雲ストレージに同期する方法を説明します。

UPX のインストール

Bash
# 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
Bash
# 给予权限
chmod +x /usr/local/bin/upx

インストール後、upx と直接入力して、正常にインストールされたか確認できます。

コマンド紹介

すべてのコマンドは -h による使用方法の確認に対応しています。

コマンド説明
login又拍雲ストレージにログイン
logoutアカウントからログアウト
sessionsすべてのセッションを表示
switchセッションを切り替え
infoサービス名、ユーザー名などの情報を表示
cd作業ディレクトリを変更(ディレクトリに移動)
pwd現在のディレクトリを表示
mkdirディレクトリを作成
ls現在のディレクトリ内のファイルとディレクトリ情報を表示
treeディレクトリ構造を表示
getファイルまたはディレクトリをダウンロード
putファイルまたはディレクトリをアップロード
rmディレクトリまたはファイルを削除
syncrsync に似たディレクトリの増分同期
authスペース名、オペレーター、パスワード情報を含む auth 文字列を生成
post非同期処理タスクを送信
purgeCDN キャッシュ更新タスクを送信
global options説明
--quiet, -q情報を表示しない
--auth valueauth 文字列
--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 ディレクトリが完全に同期されていることを確認できます。

この方法は、他のウェブサイトプログラムの静的リソースの同期にも使用できます。

WordPress

Bash
upx sync wp-content/uploads/ /wp-content/uploads/

Typecho

Bash
upx sync usr/uploads/ /usr/uploads/

Flarum

Bash
upx sync public/assets/ /public/assets/

ウェブサイトのルートディレクトリを直接同期しないでください。ルートディレクトリには設定ファイルが含まれている可能性があります。たとえば WordPress の wp-config.php ファイルにはデータベースなどの重要な情報が含まれていますが、又拍雲ストレージにアップロードすると誰でもダウンロードできるため、安全性に重大な影響を及ぼします。

定期同期

現在、upx sync は増分同期方式を使用しており、リアルタイム同期にはまだ対応していません。そのため、定期同期を実現するにはスケジュールタスクを利用するしかありません。

ここでは宝塔パネルのスケジュールタスクを使用します。Crontab よりも簡単に利用できます。

注意点として、スケジュールタスク内で upx sync を実行する場合、同期するディレクトリをシステムをルートとするパスに変更する必要があります。

1 分ごとに同期するよう設定しました。1 分後にログを確認すると、同期が正常に行われていることがわかります。

Bash
+=============+=========+===========+================+===========+=============+
| 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
----------------------------------------------------------------------------

コメント

(1)
  1. Chrome 85 Windows 10

    感觉贵站非常不错,希望与贵站友情链接! 我的网站:建站知道网-http://wozhidaole.com.cn 如果同意互换友情链接,请回复!

コメントを投稿

憂いを忘れる一枚

「憂いを忘れる一枚」は、技術探究と日々の暮らしをテーマにした個人サイトです。Web 開発、バックエンド、DevOps の実践を記録し、ソフトウェアツールやデジタル体験、コードの外で得た見聞と思索を共有します。

© 2026 憂いを忘れる一枚. 無断転載を禁じます.