rclone
について紹介します。rclone
は、簡単に説明するとscp
やrsync
の強化版です。以下のような特徴があります。fuse
のようにも使えるrclone rcd --rc-web-gui
)$ sudo -v ; curl https://rclone.org/install.sh | sudo bash
$ sudo -v ; curl https://rclone.org/install.sh | sudo bash
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 4707 100 4707 0 0 5181 0 --:--:-- --:--:-- --:--:-- 5195
Archive: rclone-current-osx-arm64.zip
creating: tmp_unzip_dir_for_rclone/rclone-v1.64.2-osx-arm64/
inflating: tmp_unzip_dir_for_rclone/rclone-v1.64.2-osx-arm64/git-log.txt [text]
inflating: tmp_unzip_dir_for_rclone/rclone-v1.64.2-osx-arm64/rclone [binary]
inflating: tmp_unzip_dir_for_rclone/rclone-v1.64.2-osx-arm64/rclone.1 [text]
inflating: tmp_unzip_dir_for_rclone/rclone-v1.64.2-osx-arm64/README.html [text]
inflating: tmp_unzip_dir_for_rclone/rclone-v1.64.2-osx-arm64/README.txt [text]
rclone v1.64.2 has successfully installed.
Now run "rclone config" for setup. Check https://rclone.org/docs/ for more details.
$ rclone version
rclone v1.64.2
- os/version: darwin 13.6 (64 bit)
- os/kernel: 22.6.0 (arm64)
- os/type: darwin
- os/arch: arm64 (ARMv8 compatible)
- go/version: go1.21.3
- go/linking: dynamic
- go/tags: cmount
Manage R2 API Tokens
というリンクがあるので、そこへ移動しましょう。続いて、Create API Token
を押下します。rclone config
コマンドから設定していくのですが、今回はR2用の設定ファイルを作っていきましょう。~/.config/rclone/rclone.conf
ファイルを作成して、以下のように書きます。[r2demo]
type = s3
provider = Cloudflare
access_key_id = [ここにAccess Key]
secret_access_key = [ここにSecret Access Key]
endpoint = https://[ここに自身のCloudflare Account ID].r2.cloudflarestorage.com
acl = private
$ rclone config file
$ rclone config file
Configuration file is stored at:
/Users/xxxx/.config/rclone/rclone.conf
demo-bucket
という名称でバケットを作成している前提で進めます。$ rclone tree r2demo:
$ rclone tree r2demo:demo-bucket
$ rclone tree r2demo:demo-bucket
/
0 directories, 0 files
$ rclone copy [アップロードするディレクトリ] r2demo:demo-bucket
$ tree
.
└── demodir
└── demodir2
├── test1.webp
└── test2.webp
$ rclone tree r2demo:demo-bucket
/
└── demodir
└── demodir2
├── test1.webp
└── test2.webp
2 directories, 2 files
Modified
(更新日時)は変更されません。変更された内容のみがアップロードされます。scp
やrsync
コマンドを使ってきました。SFTPソフトやawscli
やgsutil
といったIaaS特有のコマンドの場合もあります。rclone
は多くのクラウドストレージに対応している上に、rsync
のような差分対応やディレクトリへ直接マウントも可能です。