2016-03-23 4 views
-1

Je demande cet échantillon boucle:Curl dropbox demande en R à l'aide HTTR

curl -X POST https://content.dropboxapi.com/2/files/upload \ 
    --header "Authorization: Bearer fakeaccesstoke12345" \ 
    --header "Dropbox-API-Arg: {\"path\": \"/Homework/math/Matrices.txt\",\"mode\": \"add\"}" \ 
    --header "Content-Type: application/octet-stream" \ 
    --data-binary @local_file.txt 

que j'ai essayé de traduire en httr comme ceci:

httr::POST(
    "https://content.dropboxapi.com/2/files/upload", 
    add_headers(Authorization = "Bearer fakeaccesstoke12345", 
       `Dropbox-API-Arg` = paste("{\"path\": \"/folder/", FileName, "\"mode\": \"add\"}", sep = ''), 
       `Content-Type` = "Content-Type: application/octet-stream" 
      ) 
) 

Ce ne fonctionne pas. Je ne suis pas sûr de ce que fait le --data-binary non plus. Les docs ne semblent rien dire à ce sujet, je me demande si c'est un paramètre standard dans HTTP.

Les documents pour le point de téléchargement peuvent être trouvés here si nécessaire.

+0

Il y a un paquet de R qui fait dropbox ... uploads https://cran.r-project.org/web/packages/rdrop2/index.html – cory

+0

Je connais 'rdrop2' mais je préférerais aller le chemin HTTP si possible. – jgozal

Répondre

2
library(httr) 
library(jsonlite) 
POST(
    'https://content.dropboxapi.com/2/files/upload', 
    add_headers(
    Authorization = "Bearer <token>", 
    `Dropbox-API-Arg` = 
     jsonlite::toJSON(
     list(path = "/books.csv", mode = "add", autorename = TRUE, mute = FALSE), 
     auto_unbox = TRUE 
    ) 
), 
    content_type("application/octet-stream"), 
    body = upload_file("books.csv") 
) 
+0

Je suis content de l'avoir trouvé avant de tenter ma 80e configuration. Je vous remercie. –