Need help with rdrop2?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

karthik
222 Stars 48 Forks Other 456 Commits 60 Opened issues

Description

Dropbox Interface from R

Services available

!
?

Need anything else?

Contributors list

# 59,452
R
travis-...
TeX
data-st...
357 commits
# 395,014
R
hugo
Gulp
webpack...
37 commits
# 672,031
R
data-st...
4 commits
# 704,445
R
data-st...
1 commit
# 257,441
R
jq
Shell
data-st...
1 commit
# 574
HTML
R
jekyll-...
Jekyll
1 commit
# 756,104
R
data-st...
1 commit
# 2,818
unixpor...
Flutter
assembl...
spotify
1 commit

rdrop2 - Dropbox interface from R a_box

Project Status: Active – The project has reached a stable, usable state and is being actively developed. Build Status Coverage Status CRAN_Status_Badge DOI

Maintainers: Karthik Ram (@karthik) and Clayton Yochum (@ClaytonJY)

This package provides programmatic access to Dropbox from R. The functions in this package provide access to a full suite of file operations, including dir/copy/move/delete operations, account information and the ability to upload and download files from any Dropbox account.

Installation

# Current CRAN version (0.8.1)
install.packages('rdrop2')

or the development version (0.8.1.9999)

devtools::install_github("karthik/rdrop2")

Authentication

library(rdrop2)
drop_auth()
# This will launch your browser and request access to your Dropbox account. You will be prompted to log in if you aren't already logged in.
# Once completed, close your browser window and return to R to complete authentication. 
# The credentials are automatically cached (you can prevent this) for future use.

If you wish to save the tokens, for local/remote use

token

Retrieve Dropbox account information

library(dplyr)
drop_acc() %>% data.frame()
# Returns the following fields
# [1] "account_id"            "name.given_name"      
#  [3] "name.surname"          "name.familiar_name"   
#  [5] "name.display_name"     "name.abbreviated_name"
#  [7] "email"                 "email_verified"       
#  [9] "disabled"              "country"              
# [11] "locale"                "referral_link"        
# [13] "is_paired"             ".tag"        

Dropbox directory listing

write.csv(mtcars, "mtcars.csv")
drop_upload("mtcars.csv")
drop_dir()
# If your account is not empty, it returns the following fields
#  [1] ".tag"            "name"            "path_lower"     
#  [4] "path_display"    "id"              "client_modified"
#  [7] "server_modified" "rev"             "size"           
# [10] "content_hash"   
#
# 
# or specify a path
drop_dir('public/gifs')

|.tag |name |pathlower |pathdisplay |id |clientmodified |servermodified |rev | size|content_hash | |:----|:----------|:-----------|:------------|:-------------------------|:--------------------|:--------------------|:------------|----:|:----------------------------------------------------------------| |file |mtcars.csv |/mtcars.csv |/mtcars.csv |id:b-ac9BwzYUAAAAAAAAAxFQ |2017-09-27T16:21:56Z |2017-09-27T16:21:57Z |691634207848 | 1783|8c00dcec5f3e6bf58a42dcf354f0d5199a43567e88a9d80291bd2b85f53a54a5 |

Filter directory listing by object type (file/folder)

drop_dir() %>% 
    filter(.tag == "folder")

Create folders on Dropbox

drop_create('drop_test')
# or provide the full path where it needs to be created
drop_create('public/drop_test')

Upload a file into Dropbox

csv files
```r write.csv(mtcars, 'mtcars.csv') drop_upload('mtcars.csv')

or upload to a specific folder

dropupload('mtcars.csv', path = "droptest") ```

You can also do this for any other file type and large files are supported regardless of your memory.

Download a file

drop_download('mtcars.csv')
# or add path if file is not in root
drop_download("test_folder/mtcars.csv")

Delete a file

drop_delete('mtcars.csv')

Move files

drop_create("new_folder")
drop_move("mtcars.csv", "new_folder/mtcars.csv")

Copy files

drop_create("new_folder2")
drop_copy("new_folder/mtcars.csv", "new_folder2/mtcars.csv")

Search and download files

I frequently use a duck season rabbit season gif. This is how I could search and download from my public Dropbox account.

x 

Read csv files directly from Dropbox

write.csv(iris, file = "iris.csv")
drop_upload("iris.csv")
# Now let's read this back into an R session
# Note that there is a quiet download happening to your temp dir
new_iris 

Accessing Dropbox on Shiny and remote servers

If you expect to access a Dropbox account via Shiny or on a remote cluster, EC2, Digital Ocean etc, you can leave the cached

oauth
file in the same directory, or pass the
token
explicitly to
drop_auth
. You can also save the output of
drop_auth
into an R object, sink that to disk, and pass that as a token. If using on Travis or similar, you should consider encrypting the oauth cache file to prevent unauthorized access to your Dropbox account. If you have multiple tokens and accounts, it is also possible to override the environment token and explicitly pass a specific token for each
drop_
function.
token 

Meta

  • Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.

  • For bug reports and known problems, please look over the issues before filing a new report.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.