davix | Data Management ClientsはHTTPベースのファイル管理ツールである。これを使って、テラバイト容量のオンラインストレージ | TeraCLOUD を操作してみる。
インストール
公式リポジトリがある。
Repositories | Data Management Clientsによると、Redhat系が試しやすそうだ。EPEL/ja – FedoraProjectにオフィシャルパッケージが登録されているので、yumでインストールできる。バージョンは
Data Management Clients – Versions and documentation にまとめてあるのだが、現時点では0.6.0になる。
CentOS6にインストール
まずはepelをインストールする。
[root@c7509e0474f2 /]# yum search epel
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.fairway.ne.jp
* extras: mirror.fairway.ne.jp
* updates: mirror.fairway.ne.jp
============================== N/S Matched: epel ===============================
epel-release.noarch : Extra Packages for Enterprise Linux repository
: configuration
Name and summary matches only, use "search all" for everything.
[root@c7509e0474f2 /]# yum install epel-release
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
* base: mirror.fairway.ne.jp
* extras: mirror.fairway.ne.jp
* updates: mirror.fairway.ne.jp
Resolving Dependencies
--> Running transaction check
---> Package epel-release.noarch 0:6-8 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
epel-release noarch 6-8 extras 14 k
Transaction Summary
================================================================================
Install 1 Package(s)
Total download size: 14 k
Installed size: 22 k
Is this ok [y/N]: y
Downloading Packages:
epel-release-6-8.noarch.rpm | 14 kB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : epel-release-6-8.noarch 1/1
Verifying : epel-release-6-8.noarch 1/1
Installed:
epel-release.noarch 0:6-8
Complete!
[root@c7509e0474f2 /]# yum update -y
Loaded plugins: fastestmirror
Setting up Update Process
Loading mirror speeds from cached hostfile
epel/metalink | 4.1 kB 00:00
* base: mirror.fairway.ne.jp
* epel: ftp.kddilabs.jp
* extras: mirror.fairway.ne.jp
* updates: mirror.fairway.ne.jp
epel | 4.3 kB 00:00
epel/primary_db | 5.9 MB 00:04
No Packages marked for Update
[root@c7509e0474f2 /]#
次にdavixをインストール。
[root@c7509e0474f2 /]# yum install davix
Loaded plugins: fastestmirror
Setting up Install Process
Loading mirror speeds from cached hostfile
* base: mirror.fairway.ne.jp
* epel: ftp.kddilabs.jp
* extras: mirror.fairway.ne.jp
* updates: mirror.fairway.ne.jp
Resolving Dependencies
--> Running transaction check
---> Package davix.x86_64 0:0.6.0-1.el6 will be installed
--> Processing Dependency: davix-libs(x86-64) = 0.6.0-1.el6 for package: davix-0.6.0-1.el6.x86_64
--> Processing Dependency: libgsoapssl++.so.0()(64bit) for package: davix-0.6.0-1.el6.x86_64
--> Processing Dependency: libdavix_copy.so.0()(64bit) for package: davix-0.6.0-1.el6.x86_64
--> Processing Dependency: libdavix.so.0()(64bit) for package: davix-0.6.0-1.el6.x86_64
--> Processing Dependency: libboost_thread-mt.so.5()(64bit) for package: davix-0.6.0-1.el6.x86_64
--> Processing Dependency: libboost_system-mt.so.5()(64bit) for package: davix-0.6.0-1.el6.x86_64
--> Processing Dependency: libboost_program_options-mt.so.5()(64bit) for package: davix-0.6.0-1.el6.x86_64
--> Running transaction check
---> Package boost-program-options.x86_64 0:1.41.0-27.el6 will be installed
---> Package boost-system.x86_64 0:1.41.0-27.el6 will be installed
---> Package boost-thread.x86_64 0:1.41.0-27.el6 will be installed
---> Package davix-libs.x86_64 0:0.6.0-1.el6 will be installed
---> Package gsoap.x86_64 0:2.7.16-4.el6 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
davix x86_64 0.6.0-1.el6 epel 175 k
Installing for dependencies:
boost-program-options x86_64 1.41.0-27.el6 base 108 k
boost-system x86_64 1.41.0-27.el6 base 26 k
boost-thread x86_64 1.41.0-27.el6 base 43 k
davix-libs x86_64 0.6.0-1.el6 epel 386 k
gsoap x86_64 2.7.16-4.el6 epel 198 k
Transaction Summary
================================================================================
Install 6 Package(s)
Total download size: 937 k
Installed size: 3.9 M
Is this ok [y/N]: y
Downloading Packages:
(1/6): boost-program-options-1.41.0-27.el6.x86_64.rpm | 108 kB 00:01
(2/6): boost-system-1.41.0-27.el6.x86_64.rpm | 26 kB 00:00
(3/6): boost-thread-1.41.0-27.el6.x86_64.rpm | 43 kB 00:00
(4/6): davix-0.6.0-1.el6.x86_64.rpm | 175 kB 00:00
(5/6): davix-libs-0.6.0-1.el6.x86_64.rpm | 386 kB 00:00
(6/6): gsoap-2.7.16-4.el6.x86_64.rpm | 198 kB 00:00
--------------------------------------------------------------------------------
Total 182 kB/s | 937 kB 00:05
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA256 Signature, key ID 0608b895: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Importing GPG key 0x0608B895:
Userid : EPEL (6)
Package: epel-release-6-8.noarch (@extras)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : boost-system-1.41.0-27.el6.x86_64 1/6
Installing : boost-program-options-1.41.0-27.el6.x86_64 2/6
Installing : boost-thread-1.41.0-27.el6.x86_64 3/6
Installing : gsoap-2.7.16-4.el6.x86_64 4/6
Installing : davix-libs-0.6.0-1.el6.x86_64 5/6
Installing : davix-0.6.0-1.el6.x86_64 6/6
Verifying : gsoap-2.7.16-4.el6.x86_64 1/6
Verifying : davix-0.6.0-1.el6.x86_64 2/6
Verifying : davix-libs-0.6.0-1.el6.x86_64 3/6
Verifying : boost-thread-1.41.0-27.el6.x86_64 4/6
Verifying : boost-program-options-1.41.0-27.el6.x86_64 5/6
Verifying : boost-system-1.41.0-27.el6.x86_64 6/6
Installed:
davix.x86_64 0:0.6.0-1.el6
Dependency Installed:
boost-program-options.x86_64 0:1.41.0-27.el6
boost-system.x86_64 0:1.41.0-27.el6
boost-thread.x86_64 0:1.41.0-27.el6
davix-libs.x86_64 0:0.6.0-1.el6
gsoap.x86_64 0:2.7.16-4.el6
Complete!
[root@c7509e0474f2 /]#
Davix User Documentation | Data Management Clientsにあるように、davix-get, davix-put, davix-ls, davix-mkdir, davix-rm, davix-mv, davix-cp といったコマンドがインストールされる。
コマンド
davix-get
オンラインストレージからファイルを持ってくる(ダウンロード)
davix-put
ローカルのファイルをオンラインストレージに送る(アップロード)
davix-ls
オンラインストレージ上でのls
davix-mkdir
オンラインストレージ上でのmkdir
davix-rm
オンラインストレージ上でのrm
davix-mv
オンラインストレージ上でのmv
davix-cp
オンラインストレージ上でのcp
TeraCLOUDで使う
テラバイト容量のオンラインストレージ | TeraCLOUDはWebDAVで接続できるので、MacのFinderからでも使える。紹介コードを使って申し込むと使える容量が少し増えるので、ここにコードを書いておこう。「2SJY3」の5文字だ。
接続URLを確認する
ログインした後マイページに移動し、「クライアント接続情報」を確認する。このURLをdavixの各コマンドで指定する。ここではhttps://example.teracloud.jp/dav/
だったとしよう。
ディレクトリのファイルをリスト表示
いわゆるls。helpを見てみると、
[root@c7509e0474f2 tmp]# davix-ls --help
Usage : davix-ls [OPTIONS ...]
Common Options:
--conn-timeout TIME: Connection timeout in seconds. default: 30
--retry NUMBER: Number of retry attempt in case of an operation failure. default: 10
--retry-delay TIME: Number of seconds to wait between retry attempts. default: 0
--debug: Debug mode
--header, -H: Add a header field to the request
--help, -h: Display this help message
--metalink OPT: Metalink support. value=failover|no. default=failover)
--module, -P NAME: Load a plugin or profile by name
--proxy, -x URL: SOCKS5 proxy server URL. (Ex: socks5://login:pass@socks.example.org)
--redirection OPT: Transparent redirection support. value=yes|no. default=yes)
--timeout TIME: Global timeout for the operation in seconds. default: infinite
--trace: Specify one or more scopes to trace. (Ex: --trace log level(optional),header,file)
--version, -V: Display version
Security Options:
--capath CA_PATH: Add an additional certificate authority directory
--cert, -E CRED_PATH: Client Certificate in PEM format
--key KEY_PATH: Private key in PEM format
--insecure, -k: Disable SSL credential checks
--userlogin: User login for login/password authentication
--userpass: User password for login/password authentication
--s3secretkey SEC_KEY: S3 authentication: secret key
--s3accesskey ACC_KEY: S3 authentication: access key
--s3region REGION: S3 region (optional - if passed, will authenticate using a v4 signature instead of v2)
--s3token TOKEN: S3 security token - used along with STS temporary credentials
--s3alternate: Pass this flag if you're using a path-based S3 URL
A path-based URL contains the bucket name in the path, ie https://s3-someregion.amazonaws.com/mybucket/file
--azurekey AZURE_KEY: Azure authentication secret key
Listing Options:
--long-list, -l: long Listing mode
-r NUMBER_OF_THREADS List directories's content recursively using multiple threads
--no-cap: Disable size cap on task queue for pending listing operations
--s3-listing: S3 bucket listing mode - flat, semi or hierarchical(default)
--s3-maxkeys: Maximum number of entries returns by S3 list bucket request. default: 10000
[root@c7509e0474f2 tmp]#
となっている。TeraCLOUD上でlsするには、
davix-ls --userlogin ユーザーID --userpass パスワード https://example.teracloud.jp/dav/
とする。サブディレクトリはURLのpathに書けばよい。サブディレクトリ subdir をリスト表示する場合は
davix-ls --userlogin ユーザーID --userpass パスワード https://example.teracloud.jp/dav/subdir
とする。
ファイルのダウンロード
いわゆるwget。詳しくはdavix-get --help
を参照。davix-lsと似たようなオプションが並ぶ。
ファイルのアップロード
[root@c7509e0474f2 tmp]# davix-put --userlogin ユーザーID --userpass パスワード foo.txt https://example.teracloud.jp/dav/test/foo.txt
[root@c7509e0474f2 tmp]#
のように使う。オプションはdavix-put --help
で確認を。
davfs2の代わりに
LinuxでWebDAVを使おうとした場合、NFS mountするかのごとく、davfs2 [Savannah]を使ってmountすることが多そうだ。ただ以前試してみたところでは、cacheがひたすら増大してローカルのディスクを食い尽くしてしまい、大量のファイルを扱うのは無理との結論に達した。
davixは1ファイルずつ操作することになるが、処理が終了するたびにコマンドも終わるため、ディスクを食い尽くすことはなさそうだ。バックアップファイルの転送に使えないか、試してみよう。
コメント