2015-08-12 20 views
8

ho cercatocome scaricare il file (qualsiasi forma) dal set utilizzando R

download.file('https://www.dropbox.com/s/r3asyvybozbizrm/Himalayas.jpg', 
       destfile="1.jpg", 
       method="auto") 

ma restituisce il codice HTML di quella pagina.

provato anche un po 'di rdrop

library(rdrop2) 
# please put in your key/secret 
drop_auth(new_usesr = FALSE, key=key, secret=secret, cache=T) 

E i pop up sito rapporti:

Invalid redirect_uri: "http://localhost:1410": It must exactly match one of the redirect URIs you've pre-configured for your app (including the path). 

Non capisco la cosa URI molto bene. Qualcuno può consigliare qualche documento da leggere per favore ....

Ho letto alcuni post ma molti di loro discutono su come leggere i dati dai file excel.

repmis lavorato solo per la lettura dei file excel ...

library(repmis) 
repmis::source_DropboxData("test.csv", 
          "tcppj30pkluf5ko", 
          sep = ",", 
          header = F) 

provato anche

library(RCurl) 
url='https://www.dropbox.com/s/tcppj30pkluf5ko/test.csv' 
x = getURL(url) 
read.csv(textConnection(x)) 

E non ha funzionato ...

Qualsiasi aiuto e la discussione di apprezzati. Grazie!

+0

hi Grazie @Pascal! In realtà mi sono stancato un po 'di quello - non capisco l'URI ...vedere l'aggiornamento in OP per favore –

risposta

8

Il primo problema è perché il collegamento https://www.dropbox.com/s/r3asyvybozbizrm/Himalayas.jpg punta a una pagina di anteprima, non al contenuto del file stesso, motivo per cui si ottiene l'HTML. È possibile modificare i link in questo modo anche se per puntare il contenuto del file, come illustrato di seguito:

https://www.dropbox.com/help/201

Ad esempio, aggiungere un grezzo = 1 parametro URL:

https://www.dropbox.com/s/r3asyvybozbizrm/Himalayas.jpg?raw=1

vostro downloader avrà bisogno seguire i reindirizzamenti per farlo funzionare.

Il secondo problema è dovuto al fatto che stai tentando di utilizzare un flusso di autorizzazione dell'app OAuth 2, che richiede che tutti gli URI di reindirizzamento siano pre-registrati. È possibile registrare reindirizzare URI, nel tuo caso è http://localhost:1410, per Dropbox applicazioni API sulla pagina dell'applicazione nella console App:

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

Per ulteriori informazioni sull'uso di OAuth, è possibile consultare la guida API OAuth Dropbox qui:

https://www.dropbox.com/developers/reference/oauthguide

+0

Grazie mille @Greg! Ho usato "? Raw = 1" e il download è andato a buon fine. R visualizza 'Content type 'image/jpeg' length 67704 byte (66 KB) scaricato 66 KB'. '67704' è la dimensione corretta di quell'immagine. Ma la proprietà dell'immagine scaricata dice "67,910 byte", e non riesco ad aprirla ... Qualche idea sul perché sia ​​così? Grazie! –

+0

Quando provo a scaricare la versione grezza del collegamento tramite il mio browser, restituisce un file di 67,704 byte, che posso aprire correttamente. Il tuo codice di download è alterato per qualche motivo? Hai provato a differire le due versioni per vedere qual è la differenza? – Greg

+0

Ciao @Greg grazie per il tuo aiuto. Posso scaricarlo anche attraverso il browser, ma non ho funzionato in Rstudio. Che due versioni intendi? Ho usato 'download.file ('https://www.dropbox.com/s/r3asyvybozbizrm/Himalayas.jpg?raw=1', destfile =" 1.jpg ", method =" auto ")'. Rstudio mostra 'Content type 'image/jpeg' length 67704 bytes (66 KB)', ma con il tasto destro del mouse su file -> la proprietà mostra '67,910 bytes', e non riesco ad aprire la foto. Fammi sapere per favore. Grazie a ~ –

-1

io uso read.table(url("yourdropboxpubliclink")) per esempio io uso questo link

invece di utilizzare https://www.dropbox.com/s/xyo8sy9velpkg5y/foo.txt?dl=0, che è chared link sul set io uso https://dl.dropboxusercontent.com/u/15634209/histogram/foo.txt

e il collegamento non pubblico grezzo = 1 funzionerà

Funziona bene per me.

+1

La tua risposta non è chiara, forse dovresti modificarla per essere più esplicita. – olibiaz

+0

non solo non è chiaro, è sbagliato ... –