本文是Linux Shell脚本系列教程的第(四)篇,更多shell教程请看:Linux Shell脚本系列教程 与许多的编程语言一样,Shell中也有注释符号,继上一篇之后,今天就为大家来介绍下Shell中的注释的语法及用法。 Shell中的注释以“#”号开头,所有以“#”号开头的代码都会被解释器所忽略。 比如下面的代码: #!/bin/bash # Author…
Linux: 命令行访问 Dropbox, 命令行查看或上传文件到 Dropbox, 命令行调用Dropbox V2 API
项目地址:https://github.com/andreafabrizi/Dropbox-Uploader
特征
- Cross platform
- Support for the official Dropbox API v2
- No password required or stored
- Simple step-by-step configuration wizard
- Simple and chunked file upload
- File and recursive directory download
- File and recursive directory upload
- Shell wildcard expansion (only for upload)
- Delete/Move/Rename/Copy/List/Share files
- Create share link
- Monitor for changes
在当今这个多设备的环境下,云存储无处不在。无论身处何方,人们都想通过多种设备来从云存储中获取所需的内容。由于拥有漂亮的 UI 和完美的跨平台兼容性,Dropbox 已成为最为广泛使用的云存储服务。 Dropbox 的流行已引发了一系列官方或非官方 Dropbox 客户端的出现,它们支持不同的操作系统平台。
当然 Linux 平台下也有着自己的 Dropbox 客户端: 既有命令行的,也有图形界面客户端。Dropbox Uploader 是一个简单易用的 Dropbox 命令行客户端,它是用 Bash 脚本语言所编写的(LCTT 译注:对,你没看错, 就是 Bash)。在这篇教程中,我将描述 在 Linux 中如何使用 Dropbox Uploader 通过命令行来访问 Dropbox。
Linux 中安装和配置 Dropbox Uploader
要使用 Dropbox Uploader,你需要下载该脚本并使其可被执行。
$ wget https://raw.github.com/andreafabrizi/Dropbox-Uploader/master/dropbox_uploader.sh $ chmod +x dropbox_uploader.sh
请确保你已经在系统中安装了 curl
,因为 Dropbox Uploader 通过 curl 来运行 Dropbox 的 API。
否则用下面方式安装curl
# Debian & Ubuntu Linux: sudo apt-get install bash #(Probably BASH is already installed on your system) sudo apt-get install curl # BSD: cd /usr/ports/shells/bash && make install clean cd /usr/ports/ftp/curl && make install clean
要配置 Dropbox Uploader,只需运行 dropbox_uploader.sh 即可。当你第一次运行这个脚本时,它将请求得到授权以使得脚本可以访问你的 Dropbox 账户。
$ ./dropbox_uploader.sh

如上图所指示的那样,你需要通过浏览器访问 https://www.dropbox.com/developers/apps 页面,并创建一个新的 Dropbox app。接着像下图那样填入新 app 的相关信息,并输入 app 的名称,它与 Dropbox Uploader 所生成的 app 名称类似。

在你创建好一个新的 app 之后,你将在下一个页面看到 app key 和 app secret。请记住它们。

然后在正运行着 dropboxuploader.sh 的终端窗口中输入 app key 和 app secret。然后 dropboxuploader.sh 将产生一个 oAUTH 网址(例如,https://www.dropbox.com/1/oauth/authorize?oauth_token=XXXXXXXXXXXX)。

接着通过浏览器访问那个 oAUTH 网址,并同意访问你的 Dropbox 账户。

这便完成了 Dropbox Uploader 的配置。若要确认 Dropbox Uploader 是否真的被成功地认证了,可以运行下面的命令。
$ ./dropbox_uploader.sh info
Dropbox Uploader v0.12 > Getting info... Name: Dan Nanni UID: XXXXXXXXXX Email: my@email_address Quota: 2048 Mb Used: 13 Mb Free: 2034 Mb
Dropbox Uploader 示例
要显示根目录中的所有内容,运行:
$ ./dropbox_uploader.sh list
要列出某个特定文件夹中的所有内容,运行:
$ ./dropbox_uploader.sh list Documents/manuals
要上传一个本地文件到一个远程的 Dropbox 文件夹,使用:
$ ./dropbox_uploader.sh upload snort.pdf Documents/manuals
要从 Dropbox 下载一个远程的文件到本地,使用:
$ ./dropbox_uploader.sh download Documents/manuals/mysql.pdf ./mysql.pdf
要从 Dropbox 下载一个完整的远程文件夹到一个本地的文件夹,运行:
$ ./dropbox_uploader.sh download Documents/manuals ./manuals
要在 Dropbox 上创建一个新的远程文件夹,使用:
$ ./dropbox_uploader.sh mkdir Documents/whitepapers
要完全删除 Dropbox 中某个远程的文件夹(包括它所含的所有内容),运行:
$ ./dropbox_uploader.sh delete Documents/manuals
How to setup a proxy 设置代理
# Linux: export HTTP_PROXY_USER=XXXX export HTTP_PROXY_PASSWORD=YYYY export https_proxy=http://192.168.0.1:8080 # BSD: setenv HTTP_PROXY_USER XXXX setenv HTTP_PROXY_PASSWORD YYYY setenv https_proxy http://192.168.0.1:8080
Dropbox Uploader其他示例
testUnit.sh
#!/bin/bash DU=./dropbox_uploader.sh function check_exit { if [ $? -ne 0 ]; then echo " Error!!!" exit 1 else echo " Passed" fi } #Creating garbage data echo -ne " - Creating garbage data...\n" rm -fr "testData" mkdir -p "testData" dd if=/dev/urandom of="testData/file 1.txt" bs=1M count=3 dd if=/dev/urandom of="testData/file 2 ù.txt" bs=1M count=5 mkdir -p "testData/recurse" dd if=/dev/urandom of="testData/recurse/file 3.txt" bs=1M count=1 dd if=/dev/urandom of="testData/recurse/test_Ü.txt" bs=1M count=1 mkdir -p "testData/recurse/dir 1/" dd if=/dev/urandom of="testData/recurse/dir 1/file 4.txt" bs=1M count=1 mkdir -p "testData/recurse/dir 1/dir 3/" dd if=/dev/urandom of="testData/recurse/dir 1/dir 3/file 5.txt" bs=1M count=1 mkdir -p "testData/recurse/dir 2/" rm -fr recurse #Rmdir echo -ne " - Remove remote directory..." $DU -q remove du_tests echo "" #Mkdir echo -ne " - Make remote directory..." $DU -q mkdir du_tests check_exit #Simple upload echo -ne " - Simple file upload..." $DU -q upload "testData/file 1.txt" du_tests check_exit #Checking with list echo -ne " - Checking file..." $DU -q list du_tests | grep "file 1.txt" > /dev/null check_exit #Simple upload 2 echo -ne " - Simple file upload with special chars..." $DU -q upload testData/file\ 2* du_tests check_exit #Checking with list echo -ne " - Checking file..." $DU -q list du_tests | grep "file 2 ù.txt" > /dev/null check_exit #Recursive directory upload echo -ne " - Recursive directory upload..." $DU -q upload testData/recurse du_tests check_exit #Recursive directory download echo -ne " - Recursive directory download..." $DU -q download du_tests/recurse check_exit #Checking the downloaded dir echo -ne " - Checking the downloaded dir..." diff -r recurse testData/recurse/ check_exit #Again, recursive directory download echo -ne " - Again recursive directory download..." $DU -q download du_tests/recurse check_exit #Again, checking the downloaded dir echo -ne " - Checking the downloaded dir..." diff -r recurse testData/recurse/ check_exit rm -fr "recurse" rm -fr "testData" #Rmdir echo -ne " - Remove remote directory..." $DU -q remove du_tests check_exit
更多参考: PHP: 操作 Dropbox, 查看,下载,上传,删除等
本文:Linux: 命令行访问 Dropbox, 命令行查看或上传文件到 Dropbox, 命令行调用Dropbox V2 API