概要
amazon.co.jpの方は写真のみですが、amazon.comの方ではAmazon Cloud Driveが容量無制限プランを用意しています。
こちらはDropboxとは異なり、ローカルPCとの同期型でなくファイルをクラウド上にどんどん送り込むタイプのもので、公式が用意しているアプリもアップロードとダウンロードしかできません。
その不便さを解決するためにLinux上でいじるacd_cli
というツールがあったので紹介します。
環境
インストール
依存環境をインストールします。
$ sudo apt-get install python3-setuptools python3-appdirs python3-dateutil python3-requests python3-sqlalchemy git $ sudo easy_install3 -U pip
acdcliをインストールします。
$ sudo pip3 install --upgrade git+https://github.com/yadayada/acd_cli.git
設定
AmazonCloudDriveのOAuthの認可を受ける必要があります。
$ acdcli -v init
とすると、w3mというターミナル型のブラウザが起動します。
※この時にUbuntuの言語設定が日本だとAmazon.co.jpにアクセスされ、Amazon.comの無制限クラウドにログインできないので/etc/default/locale
でLANG="en_US.UTF-8"
やLANGUAGE="en"
を設定しましょう。
カーソルキーを上記の場所に持って行き、Enterを押すと入力可能状態になるのでID&Passwordを入力します。
完了したらSign in
のところにカーソルキーを持っていき、Enter。
今度はOAuthの認可画面になるので、Okay
のところにカーソルキーを持っていき、Enter。
するとアクセストークンが画面に表示されます。
ただこのままだと保存できないので、まずv
を押してJSONを整形します。
整形したらShift+s
で保存します。パスは.cache/acd_cli/oauth_data
です。
保存ができたらq
を押してexitします。
正しく実行されてると以下の様な標準出力になります。
$ acdcli -v init 16-01-26 12:13:03.893 [INFO] [acd_cli] - Plugin leaf classes: TestPlugin 16-01-26 12:13:03.894 [INFO] [acd_cli] - TestPlugin attached. 16-01-26 12:13:03.894 [INFO] [acdcli.api.client] - Initializing ACD with path "/home/vagrant/.cache/acd_cli". For the one-time authentication a browser (tab) will be opened at https://tensile-runway-92512.appspot.com/. Please accept the request and save the plaintext response data into a file called "oauth_data" in the directory "/home/vagrant/.cache/acd_cli". Press a key to open a browser. Press a key if you have saved the "oauth_data" file into "/home/vagrant/.cache/acd_cli". 16-01-26 12:18:04.069 [INFO] [acdcli.api.oauth] - New token expires at 2016-01-26 13:11:03.894994. 16-01-26 12:18:04.071 [INFO] [acdcli.api.oauth] - AppspotOAuthHandler initialized 16-01-26 12:18:04.072 [INFO] [acdcli.cache.schema] - DB schema version is 2. 16-01-26 12:18:04.073 [CRITICAL] [acd_cli] - Root node not found. Please sync.
動作確認
以下のコマンドでnode list cacheをリフレッシュします。頻繁に使います。
$ acdcli sync Syncing... Done.
マウント
ローカルに適当なフォルダを作成し、マウントします。マウント時はルートからのパスが必要なので~/
をつけたり/home/vagrant
など直接書いてください。
$ mkdir cloud $ acdcli mount ~/cloud
中に入るとAmazonCloudDriveに保存したファイルやフォルダが表示されます。
$ cd cloud $ ls Documents Pictures Videos
アップロード
適当なファイルをアップロードしてみます。このフォルダにデータをコピーすればクラウド上にも保存されますし、
$ touch hoge.txt $ acdcli upload hoge.txt / [#########################] 100.0% of 38B 1/1 12.6B/s 0s $ ls cloud/ Documents hoge.txt Pictures Videos
という形でもアップロードできます。第二引数は/
から始めればAmazonのルートディレクトリになります。
ファイル削除
削除する場合は直接はrm
できないので、
$ acdcli trash /hoge.txt
として削除します。
アンマウント
アンマウントは以下のコマンドです。
$ acdcli umount cloud