2013-06-25 6 views
6

をダウンロードするときに、私はhttrと1.1ギガバイトのファイルをダウンロードしようとしているが、私は次のエラーを打ってる領域が不足してGET:HTTR機能が大きなファイル

x <- GET(extract.path) 
Error in curlPerform(curl = handle$handle, .opts = curl_opts$values) : 
    cannot allocate more space: 1728053248 bytes 

私のCドライブが400ギガバイト無料あり.. RCurlパッケージで

getCurlOptionsConstants()を使用したとき、私は maxfilesizemaxfilesize.largeオプションを参照してくださいしかし、私は理解していない場合は/これらは configまたは set_configを通じて httrに渡されるかもしれない方法..または私はに切り替える必要がある場合 RCurlこれは..と私が切り替える必要がある場合でも、最大ファイルサイズの作業を増やすだろうか?

は、ここでは、あなたが私のエラーを再現したい場合は、あなたがhttps://usa.ipums.org/usa-action/samplesに行くことができます(それはあなたにしばらくがかかりますという理由だけで、これは推奨されません)

..and
> sessionInfo() 
R version 3.0.0 (2013-04-03) 
Platform: i386-w64-mingw32/i386 (32-bit) 

locale: 
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252 LC_NUMERIC=C       LC_TIME=English_United States.1252  

attached base packages: 
[1] stats  graphics grDevices utils  datasets methods base  

other attached packages: 
[1] XML_3.96-1.1 httr_0.2  

loaded via a namespace (and not attached): 
[1] digest_0.6.0 RCurl_1.95-4.1 stringr_0.6.2 tools_3.0.0 

..私のSessionInfoです新しいアカウントを登録し、2011年5年間のacs抽出を選択し、約100変数を追加して、抽出が準備完了するのを待ちます。最初の3行を編集し、以下のコードを実行します。 (再びをお勧めしません)

your.email <- "[email protected]" 
your.password <- "password" 
extract.path <- "https://usa.ipums.org/usa-action/downloads/extract_files/some_file.csv.gz" 

require(httr) 

values <- 
    list(
     "login[email]" = your.email , 
     "login[password]" = your.password , 
     "login[is_for_login]" = 1 
    ) 

POST("https://usa.ipums.org/usa-action/users/validate_login" , body = values) 
GET("https://usa.ipums.org/usa-action/extract_requests/download" , query = values) 

# this line breaks 
x <- GET(extract.path) 

答えて

1

GETが、これはconfig = list()で定義されたカールのオプションを設定しますhttr:::make_requestを呼び出します。しかし、あなたはおそらくRCurlを使用して、適切な `writefunction」を定義する必要があります

opts$writefunction <- getNativeSymbolInfo("R_curl_write_binary_data")$address 

writefunction otpionがハード「HTTR」でコーディングされて表示されます。 @Martin Morganの ソリューションCreate a C-level file handle in RCurl for writing downloaded filesが今後の道のりです。

+0

はありがとうございました!私は答えに近いと思うが、それでも動作していない。私はすべてのコードを 'httr'から' RCurl'に移動し、@Martin Morganの答えのいくつかを組み込みました。そして今は非常に異なっているので、私は[この新しい質問を書いています](http://stackoverflow.com/ 17329288/how-to-download-a-large-binary-file-rcurl-after-server-authentication).. 'httr'の解決策はないと思いますか? –

+0

バグを報告してください - httrがこれを行うことができるはずです(デフォルトではありませんが) – hadley

+0

done。ありがとう@ハドレー –

関連する問題