Posted at

【Dropbox】scriptを使用してのファイル転送処理

More than 1 year has passed since last update.

最近では、Dropboxを使用している方が多いと思います。

データのアップロードなど苦労していませんか?

下記の方法を実施することで、scriptを使用してDropboxへのファイル転送や様々な操作を実施することが可能となります。

今回は、このscriptが使用できるようにするための導入部分について触れたいと思います。

なお、今回は下記URL先の情報を参考に実施しました。

http://raspi.seesaa.net/article/415316808.html

-


導入手順


1.Dropboxのアカウントを作成する


  • きっとアカウントお持ちだと思いますが、念のため持ってない方は事前に作成してください。


2.スクリプトファイルの取得


  • 今回使用するスクリプトファイルは、gitのリポジトリから入手する。

  • shファイルの配置先はパスが通っている場所にした方がフルパスにする必要がないので楽です。

$ cd /tmp

$ sudo git clone https://github.com/andreafabrizi/Dropbox-Uploader/
$ cd Dropbox-Uploader
$ sudo chmod 755 dropbox_uploader.sh
$ sudo mv /tmp/Dropbox-Uploader/dropbox_uploader.sh /usr/local/bin/


3.Dropbox appを作成する


  • ツールで使用するapp keyとapp seacretの情報を取得するためにappを作成する。


3.1.手順

①下記のURLを開く

 https://www.dropbox.com/developers/apps

②[My app]を選択し、Create appをクリックする

kobito.1466524776.131158.png

③APIのタイプを選ぶ

- 個人的に使用するのであれば、Dropbox APIでいいと思います。

kobito.1466524900.796329.png

④アクセスタイプを選ぶ

- 不特定のファイルをアップロードするのであればフルアクセスがいいと思います。

kobito.1466524983.229997.png

⑤appの名称を指定する

- ここの名前には、dropboxというキーワードを指定することはできないので注意が必要となる。

kobito.1466525050.621378.png

⑥作成する

kobito.1466525069.115288.png

⑦App keyとApp Seacretの情報を控える

kobito.1466525128.404641.png


4.アクティベート設定する

$ cd /usr/local/bin/

$ ./dropbox_uploader.sh
$ ./dropbox_uploader.sh
This is the first time you run this script.

1) Open the following URL in your Browser, and log in using your account: https://www.dropbox.com/developers/apps
2) Click on "Create App", then select "Dropbox API app"
3) Select "Files and datastores"
4) Now go on with the configuration, choosing the app permissions and access restrictions to your DropBox folder
5) Enter the "App Name" that you prefer (e.g. MyUploader84512395614070)

Now, click on the "Create App" button.

When your new App is successfully created, please type the
App Key, App Secret and the Permission type shown in the confirmation page:

# App key:

★入力していく

# App key: ***************
# App secret: *****************
# Permission type, App folder or Full Dropbox [a/f]: a

> App key is ***************, App secret is ***************** and Access level is App Folder. Looks ok? [y/n]: y

> Token request... OK

Please open the following URL in your browser, and allow Dropbox Uploader
to access your DropBox folder:

--> https://www.dropbox.com/1/oauth/authorize?oauth_token=*************

Press enter when done...


  • 設定した情報は下記コマンドにて確認できる。

$ cd ~

$ sudo view .dropbox_uploader


5.ファイルをアップロードする

$ dropbox_uploader.sh upload [ローカルの元ファイル] [アップロードするファイル名]

-


動作確認

正常にuploadできたことを確認。

User-MBA:Desktop User$ date;dropbox_uploader.sh upload /Users/User/Desktop/BIRIGAL.m4v /000_Private/001_Movie_mp4/002_Movies/BIRIGAL.m4v;date

2016年 6月22日 水曜日 00時43分05秒 JST
> Uploading "/Users/User/Desktop/BIRIGAL.m4v" to "/000_Private/001_Movie_mp4/002_Movies/BIRIGAL.m4v"...................................................................................................................................................................................................... DONE
2016年 6月22日 水曜日 01時25分33秒 JST
User-MBA:Desktop User$
User-MBA:Desktop User$

-


今回使用したscriptのオプションコマンド

今回は、uploadオプションを使用して実機検証を行いましたが、

これら以外にもオプションとして各コマンド操作ができるようです。

下記、対応している操作。

1)upload

2)download
3)delete
4)move
5)copy
6)mkdir
7)list
8)share
9)info
10)unlink

それぞれの操作方法について、下記にまとめていきます。


1)upload

ローカルフォルダーを指定してリモートフォルダー上にファイルをアップロードできる。

ワイルドカードの拡張をサポートしている。

$ dropbox_uploader.sh upload <LOCAL_FILE/DIR ...> <REMOTE_FILE/DIR>

User-MBA:dropbox_test User$ dropbox_uploader.sh upload ./*.txt /test/

> Uploading "./test001.txt" to "/test/test001.txt"... DONE
> Uploading "./test002.txt" to "/test/test002.txt"... DONE
> Uploading "./test003.txt" to "/test/test003.txt"... DONE
User-MBA:dropbox_test User$
User-MBA:dropbox_test User$
User-MBA:dropbox_test User$ dropbox_uploader.sh list /test/
> Listing "/test/"... DONE
[F] 48 test001.txt
[F] 48 test002.txt
[F] 48 test003.txt
User-MBA:dropbox_test User$


2)download

リモートフォルダ上のファイルをダウンロードできる。

ローカルフォルダを指定しない場合は、カレント上にダウンロードされる。

$ dropbox_uploader.sh download <REMOTE_FILE/DIR> <LOCAL_FILE/DIR>

User-MBA:dropbox_test User$ dropbox_uploader.sh download /test/test001.txt

> Downloading "/test/test001.txt" to "test001.txt"... DONE
User-MBA:dropbox_test User$
User-MBA:dropbox_test User$ ll
total 8
-rw------- 1 User staff 48 6 22 13:39 test001.txt
User-MBA:dropbox_test User$
User-MBA:dropbox_test User$ dropbox_uploader.sh download /test/test002.txt
> Downloading "/test/test002.txt" to "test002.txt"... DONE
User-MBA:dropbox_test User$ dropbox_uploader.sh download /test/test003.txt
> Downloading "/test/test003.txt" to "test003.txt"... DONE
User-MBA:dropbox_test User$
User-MBA:dropbox_test User$
User-MBA:dropbox_test User$ ll
total 24
-rw------- 1 User staff 48 6 22 13:39 test001.txt
-rw------- 1 User staff 48 6 22 13:39 test002.txt
-rw------- 1 User staff 48 6 22 13:39 test003.txt
User-MBA:dropbox_test User$


3)delete

リモートフォルダ上のファイルを削除することができる。

$ dropbox_uploader.sh delete <REMOTE_FILE/DIR>

User-MBA:dropbox_test User$ dropbox_uploader.sh list /test/

> Listing "/test/"... DONE
[F] 48 test001.txt
[F] 48 test002.txt
[F] 48 test003.txt
User-MBA:dropbox_test User$
User-MBA:dropbox_test User$ dropbox_uploader.sh delete /test/test001.txt
> Deleting "/test/test001.txt"... DONE
User-MBA:dropbox_test User$
User-MBA:dropbox_test User$ dropbox_uploader.sh list /test/
> Listing "/test/"... DONE
[F] 48 test002.txt
[F] 48 test003.txt
User-MBA:dropbox_test User$


4)move

リモートフォルダ上のファイルを移動またはリネームすることができる。

$ dropbox_uploader.sh move <REMOTE_FILE/DIR> <REMOTE_FILE/DIR>

User-MBA:dropbox_test User$ dropbox_uploader.sh list /test/

> Listing "/test/"... DONE
[F] 48 test002.txt
[F] 48 test003.txt
User-MBA:dropbox_test User$
User-MBA:dropbox_test User$
User-MBA:dropbox_test User$ dropbox_uploader.sh move /test/test003.txt /test/test001.txt
> Moving "/test/test003.txt" to "/test/test001.txt" ... DONE
User-MBA:dropbox_test User$
User-MBA:dropbox_test User$ dropbox_uploader.sh list /test/
> Listing "/test/"... DONE
[F] 48 test001.txt
[F] 48 test002.txt
User-MBA:dropbox_test User$


5)copy

リモートフォルダ上のファイルをコピーすることができる。

$ dropbox_uploader.sh copy <REMOTE_FILE/DIR> <REMOTE_FILE/DIR>

User-MBA:dropbox_test User$ dropbox_uploader.sh list /test/

> Listing "/test/"... DONE
[D] 0 test20160623
[F] 48 test001.txt
[F] 48 test002.txt
User-MBA:dropbox_test User$
User-MBA:dropbox_test User$
User-MBA:dropbox_test User$ dropbox_uploader.sh copy /test/test001.txt /test/test`date +%Y%m%d`/
> Copying "/test/test001.txt" to "/test/test20160623/test001.txt" ... DONE
User-MBA:dropbox_test User$
User-MBA:dropbox_test User$ dropbox_uploader.sh list /test/test`date +%Y%m%d`
> Listing "/test/test20160623"... DONE
[F] 48 test001.txt
User-MBA:dropbox_test User$
User-MBA:dropbox_test User$ dropbox_uploader.sh copy /test/test`date +%Y%m%d`/ /test/sample
> Copying "/test/test20160623/" to "/test/sample" ... DONE
User-MBA:dropbox_test User$
User-MBA:dropbox_test User$
User-MBA:dropbox_test User$ dropbox_uploader.sh list /test
> Listing "/test"... DONE
[D] 0 sample
[D] 0 test20160623
[F] 48 test001.txt
[F] 48 test002.txt
User-MBA:dropbox_test User$
User-MBA:dropbox_test User$ dropbox_uploader.sh list /test/sample
> Listing "/test/sample"... DONE
[F] 48 test001.txt
User-MBA:dropbox_test User$


6)mkdir

リモートフォルダ上にディレクトリを作成できる。

$ dropbox_uploader.sh mkdir <REMOTE_DIR>

User-MBA:dropbox_test User$ dropbox_uploader.sh list /test/

> Listing "/test/"... DONE
[F] 48 test001.txt
[F] 48 test002.txt
User-MBA:dropbox_test User$
User-MBA:dropbox_test User$ dropbox_uploader.sh mkdir /test/test`date +%Y%m%d`
> Creating Directory "/test/test20160623"... DONE
User-MBA:dropbox_test User$
User-MBA:dropbox_test User$ dropbox_uploader.sh list /test/
> Listing "/test/"... DONE
[D] 0 test20160623
[F] 48 test001.txt
[F] 48 test002.txt
User-MBA:dropbox_test User$


7)list

リモートフォルダ上のディレクトリおよびファイルをリスト表示することができる。

但し、日本語は文字化けしてしまうので注意が必要。

$ dropbox_uploader.sh list [REMOTE_DIR]

User-MBA:Desktop User$ dropbox_uploader.sh list /test

> Listing "/test"... DONE
[F] 48 test_aaaa.txt
User-MBA:Desktop User$


8)share

ファイルまたはフォルダを共有するためのリンクパスを取得することができる。

$ dropbox_uploader.sh share <REMOTE_FILE>

User-MBA:dropbox_test User$ dropbox_uploader.sh share /test/test`date +%Y%m%d`/

> Share link: https://db.tt/5WVVzz5M
User-MBA:dropbox_test User$

kobito.1466662882.864616.png

また、指定したURL先から直接リモートフォルダへの保存をすることができる。

$ dropbox_uploader.sh saveurl <URL> <REMOTE_DIR>

User-MBA:dropbox_test User$ 

User-MBA:dropbox_test User$ dropbox_uploader.sh list /test
> Listing "/test"... DONE
[D] 0 sample
[D] 0 test20160623
[F] 48 test001.txt
[F] 48 test002.txt
User-MBA:dropbox_test User$
User-MBA:dropbox_test User$
User-MBA:dropbox_test User$ dropbox_uploader.sh saveurl http://docs.aws.amazon.com/gettingstarted/latest/awsgsg-intro/awsgsg-intro.pdf /test/
> Downloading "http://docs.aws.amazon.com/gettingstarted/latest/awsgsg-intro/awsgsg-intro.pdf" to "/test/"...++ DONE
User-MBA:dropbox_test User$
User-MBA:dropbox_test User$
User-MBA:dropbox_test User$ dropbox_uploader.sh list /test
> Listing "/test"... DONE
[D] 0 sample
[D] 0 test20160623
[F] 253338 awsgsg-intro.pdf
[F] 48 test001.txt
[F] 48 test002.txt
User-MBA:dropbox_test User$


9)info

Dropboxのアカウント情報を表示することができる。

$ dropbox_uploader.sh info

User-MBA:dropbox_test User$ dropbox_uploader.sh info

Dropbox Uploader v0.16

> Getting info...

Name: Daisuke Miura
UID: 341027231
Email: dmiura1112+dropbox@gmail.com
Quota: 1050880 Mb
Used: 10168 Mb
Free: 1040711 Mb

User-MBA:dropbox_test User$


10)unlink

scriptをDropboxとのリレーションを解除する。

基本使用しなくなる場合などに実行する。

$ dropbox_uploader.sh unlink

Last login: Sat Jun 18 12:38:16 on ttys000
User-MBA:~ User$
User-MBA:~ User$
User-MBA:~ User$
User-MBA:~ User$ ll /tmp
lrwxr-xr-x@ 1 root wheel 11 1 14 13:38 /tmp -> private/tmp
User-MBA:~ User$
User-MBA:~ User$
User-MBA:~ User$
User-MBA:~ User$ cd /tmp
User-MBA:tmp User$ sudo git clone https://github.com/andreafabrizi/Dropbox-Uploader/
Password:
Cloning into 'Dropbox-Uploader'...
remote: Counting objects: 728, done.
remote: Total 728 (delta 0), reused 0 (delta 0), pack-reused 728
Receiving objects: 100% (728/728), 220.80 KiB | 159.00 KiB/s, done.
Resolving deltas: 100% (374/374), done.
Checking connectivity... done.
User-MBA:tmp User$
User-MBA:tmp User$
User-MBA:tmp User$ ll /tmp
lrwxr-xr-x@ 1 root wheel 11 1 14 13:38 /tmp -> private/tmp
User-MBA:tmp User$
User-MBA:tmp User$ ll /tmp/
total 4056
drwxr-xr-x 8 root wheel 272 6 22 00:22 Dropbox-Uploader
drwx------ 3 root wheel 102 6 21 23:26 KSOutOfProcessFetcher.0.ppfIhqX0vjaTSb8AJYobDV7Cu68=
drwx------ 3 User wheel 102 6 21 23:26 KSOutOfProcessFetcher.501.ppfIhqX0vjaTSb8AJYobDV7Cu68=
drwx------ 3 _mbsetupuser wheel 102 6 3 23:01 com.apple.launchd.DL8yblRUFo
drwx------ 3 _mbsetupuser wheel 102 6 3 23:01 com.apple.launchd.IB63xhXORU
drwx------ 3 User wheel 102 6 3 23:01 com.apple.launchd.WCCY8K3bRP
drwx------ 3 User wheel 102 6 3 23:01 com.apple.launchd.cVJFcOxwMM
drwx------ 3 User wheel 102 6 3 23:01 com.apple.launchd.k3dnnONwWJ
drwx------ 3 _mbsetupuser wheel 102 6 3 23:01 com.apple.launchd.kgXsmC7faf
-rw-r--r-- 1 root wheel 96 6 16 21:36 wifi-2miIoP.log
-rw-r--r-- 1 root wheel 96 6 16 21:36 wifi-JM6rTJ.log
-rw-r--r-- 1 root wheel 2048000 6 16 21:36 wifi-MV37Fl.log
-rw-r--r-- 1 root wheel 96 6 16 21:36 wifi-Qjrla1.log
-rw-r--r-- 1 root wheel 96 6 16 21:36 wifi-kI84WO.log
-rw-r--r-- 1 root wheel 440 6 16 21:36 wifi-lTaP5x.log
-rw-r--r-- 1 root wheel 96 6 16 21:36 wifi-ogBdYM.log
-rw-r--r-- 1 root wheel 96 6 16 21:36 wifi-wQuwsU.log
User-MBA:tmp User$
User-MBA:tmp User$
User-MBA:tmp User$ cd Dropbox-Uploader
User-MBA:Dropbox-Uploader User$ ll
total 208
-rw-r--r-- 1 root wheel 7824 6 22 00:22 CHANGELOG.md
-rw-r--r-- 1 root wheel 35147 6 22 00:22 LICENSE
-rw-r--r-- 1 root wheel 7296 6 22 00:22 README.md
-rwxr-xr-x 1 root wheel 8649 6 22 00:22 dropShell.sh
-rwxr-xr-x 1 root wheel 40892 6 22 00:22 dropbox_uploader.sh
User-MBA:Dropbox-Uploader User$
User-MBA:Dropbox-Uploader User$
User-MBA:Dropbox-Uploader User$
User-MBA:Dropbox-Uploader User$ sudo chmod 755 dropbox_uploader.sh
User-MBA:Dropbox-Uploader User$
User-MBA:Dropbox-Uploader User$
User-MBA:Dropbox-Uploader User$
User-MBA:Dropbox-Uploader User$ ll
total 208
-rw-r--r-- 1 root wheel 7824 6 22 00:22 CHANGELOG.md
-rw-r--r-- 1 root wheel 35147 6 22 00:22 LICENSE
-rw-r--r-- 1 root wheel 7296 6 22 00:22 README.md
-rwxr-xr-x 1 root wheel 8649 6 22 00:22 dropShell.sh
-rwxr-xr-x 1 root wheel 40892 6 22 00:22 dropbox_uploader.sh
User-MBA:Dropbox-Uploader User$
User-MBA:Dropbox-Uploader User$
User-MBA:Dropbox-Uploader User$
User-MBA:Dropbox-Uploader User$
User-MBA:Dropbox-Uploader User$ sudo mv /tmp/Dropbox-Uploader/dropbox_uploader.sh /usr/local/bin/
User-MBA:Dropbox-Uploader User$
User-MBA:Dropbox-Uploader User$
User-MBA:Dropbox-Uploader User$ ll
total 128
-rw-r--r-- 1 root wheel 7824 6 22 00:22 CHANGELOG.md
-rw-r--r-- 1 root wheel 35147 6 22 00:22 LICENSE
-rw-r--r-- 1 root wheel 7296 6 22 00:22 README.md
-rwxr-xr-x 1 root wheel 8649 6 22 00:22 dropShell.sh
User-MBA:Dropbox-Uploader User$
User-MBA:Dropbox-Uploader User$
User-MBA:Dropbox-Uploader User$
User-MBA:Dropbox-Uploader User$ cd /usr/local/bin/
User-MBA:bin User$ ll
total 1120
-rwxr-xr-x 1 User admin 656 4 23 23:40 brew
lrwxr-xr-x 1 User admin 37 4 23 23:42 c_rehash -> ../Cellar/openssl/1.0.2g/bin/c_rehash
-rwxr-xr-x 1 root wheel 40892 6 22 00:22 dropbox_uploader.sh
lrwxr-xr-x 1 User admin 36 4 23 23:42 openssl -> ../Cellar/openssl/1.0.2g/bin/openssl
-rwxr-xr-x 1 root admin 518956 4 23 23:46 wget
User-MBA:bin User$ ./dropbox_uploader.sh

This is the first time you run this script.

1) Open the following URL in your Browser, and log in using your account: https://www.dropbox.com/developers/apps
2) Click on "Create App", then select "Dropbox API app"
3) Now go on with the configuration, choosing the app permissions and access restrictions to your DropBox folder
4) Enter the "App Name" that you prefer (e.g. MyUploader22234335311198)

Now, click on the "Create App" button.

When your new App is successfully created, please type the
App Key, App Secret and the Permission type shown in the confirmation page:

# App key: 4r7l1cmorjvl22r
# App secret: ozufofb9bwi33rw

Permission type:
App folder [a]: If you choose that the app only needs access to files it creates
Full Dropbox [f]: If you choose that the app needs access to files already on Dropbox

# Permission type [a/f]: f

> App key is 4r7l1cmorjvl22r, App secret is ozufofb9bwi33rw and Access level is Full Dropbox. Looks ok? [y/n]: y

> Token request... OK

Please open the following URL in your browser, and allow Dropbox Uploader
to access your DropBox folder:

--> https://www.dropbox.com/1/oauth/authorize?oauth_token=BMSEHqn98sqpx2GP

Press enter when done...

> Access Token request... OK

Setup completed!
User-MBA:bin User$
User-MBA:bin User$
User-MBA:bin User$
User-MBA:bin User$