• This repository has been archived on 07/Nov/2022
  • Stars
    star
    150
  • Rank 247,323 (Top 5 %)
  • Language
    Perl
  • License
    MIT License
  • Created over 13 years ago
  • Updated about 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

command line interface to access Dropbox API

Build Status

NAME

App::dropboxapi - command line interface to access Dropbox API

SYNOPSIS

dropbox-api put /tmp/foo.txt dropbox:/Public/

Run dropbox-api help for more options.

DESCRIPTION

dropbox-api is a command line interface to access Dropbox API.

  • ls
  • find
  • du
  • sync
  • cp
  • mv
  • rm
  • mkdir
  • get
  • put

Install and Setup

1. Install

1-a) FreeBSD

pkg install dropbox-api-command

1-b) Ubuntu

sudo apt-get install make gcc libssl-dev wget
wget https://raw.github.com/miyagawa/cpanminus/master/cpanm
sudo perl cpanm App::dropboxapi

1-c) CentOS

# CentOS 5
sudo yum install gcc gcc-c++ openssl-devel wget
# CentOS 6
sudo yum install gcc gcc-c++ openssl-devel wget perl-devel
wget https://raw.github.com/miyagawa/cpanminus/master/cpanm
sudo perl cpanm App::dropboxapi

1-d) OS X

# Install Command Line Tools for Xcode
open https://www.google.com/search?q=Command+Line+Tools+for+Xcode

curl -O https://raw.github.com/miyagawa/cpanminus/master/cpanm
sudo perl cpanm App::dropboxapi

2. Get API Key and API Secret

https://www.dropbox.com/developers
My Apps => Create an App

3. Get Access Token and Access Secret

> dropbox-api setup
Please Input API Key: ***************
Please Input API Secret: ***************
1. Open the Login URL: https://www.dropbox.com/oauth2/authorize?client_id=*****&response_type=code
2. Input code and press Enter: ***************
success! try
> dropbox-api ls
> dropbox-api find /

4. How to use Proxy

Please use -e option.

> HTTP_PROXY="http://127.0.0.1:8888" dropbox-api setup -e

Sub Commands

help

disp help.

  • syntax

    dropbox-api help [<command>]

Example

> dropbox-api help
Usage: dropbox-api <command> [args] [options]

Available commands:
    setup get access_key and access_secret
    ls    list directory contents
    find  walk a file hierarchy
    du    disk usage statistics
    cp    copy file or directory
    mv    move file or directory
    mkdir make directory (Create intermediate directories as required)
    rm    remove file or directory (Attempt to remove the file hierarchy rooted in each file argument)
    put   upload file
    get   download file
    sync  sync directory (local => dropbox or dropbox => local)

Common Options
    -e enable env_proxy ( HTTP_PROXY, NO_PROXY )
    -D enable debug
    -v verbose
    -s sandbox mode, but this option has been removed.

See 'dropbox-api help <command>' for more information on a specific command.

Example ( command help )

> dropbox-api help ls
Name
    dropbox-api-ls - list directory contents

SYNOPSIS
    dropbox-api ls <dropbox_path> [options]

Example
    dropbox-api ls Public
    dropbox-api ls Public -h
    dropbox-api ls Public -p "%d\t%s\t%TY/%Tm/%Td %TH:%TM:%TS\t%p\n"

Options
    -h print sizes in human readable format (e.g., 1K 234M 2G)
    -p print format.
        %d ... is_dir ( d: dir, -: file )
        %i ... id
        %n ... name
        %p ... path_display
        %P ... path_lower
        %b ... bytes
        %s ... size (e.g., 1K 234M 2G)
        %t ... server_modified
        %c ... client_modified
        %r ... rev
        %Tk ... DateTime 'strftime' function (server_modified)
        %Ck ... DateTime 'strftime' function (client_modified)

http://search.cpan.org/dist/DateTime/lib/DateTime.pm#strftime_Patterns

ls

file list view.

  • alias

    list

  • syntax

    dropbox-api ls <dropbox_path>

Example

> dropbox-api list /product
d        - Thu, 24 Feb 2011 06:58:00 +0000 /product/chrome-extentions
-   294557 Sun, 26 Dec 2010 21:55:59 +0000 /product/ex.zip

human readable option ( -h )

print sizes in human readable format (e.g., 1K 234M 2G)

> dropbox-api ls /product -h
d        - Thu, 24 Feb 2011 06:58:00 +0000 /product/chrome-extentions
-  287.7KB Sun, 26 Dec 2010 21:55:59 +0000 /product/ex.zip

printf option ( -p )

print format.

> dropbox-api ls /product -p "%d\t%s\t%TY/%Tm/%Td %TH:%TM:%TS\t%p\n"
d       -       2011/02/24 06:58:00     /product/chrome-extentions
-       287.7KB 2010/12/26 21:55:59     /product/ex.zip

    %d ... is_dir ( d: dir, -: file )
    %i ... id
    %n ... name
    %p ... path_display
    %P ... path_lower
    %b ... bytes
    %s ... size (e.g., 1K 234M 2G)
    %t ... server_modified
    %c ... client_modified
    %r ... rev
    %Tk ... DateTime 'strftime' function (server_modified)
    %Ck ... DateTime 'strftime' function (client_modified)

http://search.cpan.org/dist/DateTime/lib/DateTime.pm#strftime_Patterns

find

recursive file list view.

  • syntax

    dropbox-api find <dropbox_path> [options]

Example

> dropbox-api find /product/google-tasks-checker-plus
/product/chrome-extentions/google-tasks-checker-plus/README.md
/product/chrome-extentions/google-tasks-checker-plus/src
/product/chrome-extentions/google-tasks-checker-plus/src/background.html
/product/chrome-extentions/google-tasks-checker-plus/src/external.png
/product/chrome-extentions/google-tasks-checker-plus/src/icon-32.png
/product/chrome-extentions/google-tasks-checker-plus/src/icon-128.png
/product/chrome-extentions/google-tasks-checker-plus/src/icon.gif
/product/chrome-extentions/google-tasks-checker-plus/src/jquery-1.4.2.min.js
/product/chrome-extentions/google-tasks-checker-plus/src/main.js
/product/chrome-extentions/google-tasks-checker-plus/src/manifest.json
/product/chrome-extentions/google-tasks-checker-plus/src/options.html
/product/chrome-extentions/google-tasks-checker-plus/src/popup.html
/product/chrome-extentions/google-tasks-checker-plus/src/reset.css

printf option ( -p )

see also list command's printf option.

du

display disk usage statistics.

  • syntax

    dropbox-api du <dropbox_path> [options]

Example

> dropbox-api du /product -h -d 1
1.1M    /product
1.1M    /product/chrome-extensions
  0B    /product/work

human readable option ( -h )

print sizes in human readable format (e.g., 1K 234M 2G)

depth option ( -d )

Display an entry for all files and directories depth directories deep.

sync ( rsync )

recursive file synchronization.

sync from dropbox

dropbox-api sync dropbox:<source_dir> <target_dir> [options]

> dropbox-api sync dropbox:/product/google-tasks-checker-plus/src /tmp/product
download /private/tmp/product/external.png
download /private/tmp/product/icon-32.png
download /private/tmp/product/icon-128.png

sync to dropbox

dropbox-api sync <source_dir> dropbox:<target_dir> [options]

> dropbox-api sync /tmp/product dropbox:/work/src
upload background.html /work/src/background.html
upload external.png /work/src/external.png
upload icon-128.png /work/src/icon-128.png

delete option ( -d )

> dropbox-api sync dropbox:/product/google-tasks-checker-plus/src /tmp/product -d
download /private/tmp/product/external.png
download /private/tmp/product/icon-32.png
download /private/tmp/product/icon-128.png
remove background.html.tmp

dry run option ( -n )

> dropbox-api sync dropbox:/product/google-tasks-checker-plus/src /tmp/product -dn
!! enable dry run !!
download /private/tmp/product/external.png
download /private/tmp/product/icon-32.png
download /private/tmp/product/icon-128.png
remove background.html.tmp

verbose option ( -v )

> dropbox-api sync dropbox:/product/google-tasks-checker-plus/src /tmp/product -dnv
remote_base: /product/chrome-extentions/google-tasks-checker-plus/src
local_base: /private/tmp/product
** download **
skip background.html
download /private/tmp/product/external.png
download /private/tmp/product/icon-32.png
download /private/tmp/product/icon-128.png
skip icon.gif
skip jquery-1.4.2.min.js
skip main.js
skip manifest.json
skip options.html
skip popup.html
skip reset.css
** delete **
skip background.html
remove background.html.tmp
skip icon.gif
skip jquery-1.4.2.min.js
skip main.js
skip manifest.json
skip options.html
skip popup.html
skip reset.css

cp

copy file or directory.

  • alias

    copy

  • syntax

    dropbox-api cp <source_file> <target_file>

Example

dropbox-api cp memo.txt memo.txt.bak

mv

move file or directory.

  • alias

    move

  • syntax

    dropbox-api mv <source_file> <target_file>

Example

dropbox-api mv memo.txt memo.txt.bak

mkdir

make directory.

*no error if existing, make parent directories as needed.*

  • alias

    mkpath

  • syntax

    dropbox-api mkdir <directory>

Example

dropbox-api mkdir product/src

rm

remove file or directory.

*remove the contents of directories recursively.*

  • alias

    rmtree

  • syntax

    dropbox-api rm <file_or_directory>

Example

dropbox-api rm product/src

get

download file from dropbox.

  • alias

    dl, download

  • syntax

    dropbox-api get dropbox:<dropbox_file> <file>

Example

dropbox-api get dropbox:/Public/foo.txt /tmp/foo.txt

put

upload file to dropbox.

  • alias

    up, upload

  • syntax

    dropbox-api put <file> dropbox:<dropbox_dir>

Example

dropbox-api put /tmp/foo.txt dropbox:/Public/

verbose option ( -v )

A progress bar is displayed.

dropbox-api put /tmp/1GB.dat dropbox:/Public/ -v
100% [=====================================================================================>]

Tips

Retry

#!/bin/bash

command='dropbox-api sync dropbox:/test/ /Users/aska/test/ -vde'

NEXT_WAIT_TIME=0
EXIT_CODE=0
until $command || [ $NEXT_WAIT_TIME -eq 4 ]; do
    EXIT_CODE=$?
    sleep $NEXT_WAIT_TIME
    let NEXT_WAIT_TIME=NEXT_WAIT_TIME+1
done
exit $EXIT_CODE

COPYRIGHT

Copyright 2012- Shinichiro Aska

The standalone executable contains the following modules embedded.

LICENSE

Released under the MIT license. http://creativecommons.org/licenses/MIT/

COMMUNITY

More Repositories

1

KeyClip

KeyClip is yet another Keychain library written in Swift.
Swift
42
star
2

7kai-Tasks

Social Task Management Tool.
JavaScript
38
star
3

EventBox

EventBox is yet another notification library written in Swift.
Swift
19
star
4

Justaway-for-iOS

Lightweight Twitter Client for iOS
Swift
17
star
5

TwitterAPI

This Twitter framework is to both support the OAuth and Social.framework, can handle REST and Streaming API.
Swift
15
star
6

Justaway-for-Android-Original

Lightweight Twitter Client for Android
Java
15
star
7

p5-WebService-Dropbox

Perl
12
star
8

markdown-binder

Ajax Markdown Viewer written in Perl, to run under Plack.
Perl
10
star
9

DocLife

Document Viewer written in Perl, to run under Plack.
Perl
6
star
10

Pinwheel

Swift
5
star
11

sample-bbs

ใ‚ตใƒณใƒ—ใƒซใ‚ขใƒ—ใƒชใ‚ฑใƒผใ‚ทใƒงใƒณ
Perl
4
star
12

MutableDataScanner

Swift
4
star
13

Justaway-for-Aska

Lightweight Twitter Client for Android
Java
3
star
14

ssl_certificate_exporter

Exporter for SSL Certificate metrics https://prometheus.io/
Go
3
star
15

vmware-server-backup-script

VMware Server GuestOS BackUp Script
Shell
3
star
16

p5-Plack-Session-State-URI

Perl
1
star
17

app-core.js

1
star
18

IP-Country

Release history of IP-Country
Perl
1
star
19

service-bookma

bookma!
1
star
20

Burger

Pickles Sample Appication with Social Login Module.
Perl
1
star
21

Crypt-Camellia

Release history of Crypt-Camellia
Perl
1
star
22

chrome-ext-camellia-encrypter

Camellia Encrypter ( Chrome Extentions )
JavaScript
1
star
23

yapc2011

YAPC 2011 Slide
1
star
24

CSS-Tiny-Style

Release history of CSS-Tiny-Style
Perl
1
star
25

finance_mufg_exporter

Exporter for ๆฑไบฌไธ‰่ฑUFJ้Š€่กŒ metrics https://prometheus.io/
Go
1
star
26

mail-tools

Mail Tools
Perl
1
star
27

JSON-XS

Release history of JSON-XS
Perl
1
star
28

chihaya-pm-sendmail

1
star
29

setup

็’ฐๅขƒๆง‹็ฏ‰ๅคช้ƒŽ
Shell
1
star
30

php-openid-with-ld

PHP
1
star
31

Justaway-Ex

ใคใ‚‰ใ„็›ฎใฎ็–ฒใ‚Œใ€่‚ฉใ€้ฆ–ใ™ใ˜ใฎใ“ใ‚Šใ€่…ฐใฎ็—›ใฟใซ
Go
1
star
32

chrome-ext-backlog-cheker

Backlog Cheker ( Chrome Extentions )
JavaScript
1
star
33

chihaya-pm-screen

Ruby
1
star
34

chrome-ext-google-tasks-checker-plus

Google Tasks Cheker Plus
JavaScript
1
star