2013-06-25 16 views
6

i httr ile 1.1 gigabayt bir dosyayı indirmeye çalışıyorum ama aşağıdaki hatayı isabet ediyorum indirirken alanının tükenmesi işlevi:HTTR GET büyük bir dosya

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

benim C sürücüsü 400 GB ücretsiz sahiptir .. RCurl pakette

, getCurlOptionsConstants() kullanırken i maxfilesize ve maxfilesize.large seçeneklerini görmek ama anlamıyorum eğer/bu config veya set_config içinden httr geçirilecek nasıl .. ya da ben üzerinden geçiş gerekiyorsaBunun içinve geçiş yapmam gerekse bile, maksimum dosyalama işini artıracak mı?

burada, benim hatayı yeniden istiyorsanız, size https://usa.ipums.org/usa-action/samples gidebilir (bu size bir süre alacaktır sırf bu tavsiye edilmez)

..ve
> 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 

.. benim sessionInfo var Yeni bir hesaba kayıt olun, 2011 5 yıllık acs özümünü seçin, yaklaşık yüz değişken ekleyin ve özümün hazır olmasını bekleyin. sonra ilk üç satırı düzenleyin ve aşağıdaki kodu çalıştırın.

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) 

cevap

1

GET aramaları httr:::make_request bu config = list() tanımlanan bukle seçeneklerini ayarlar (yine önerilmez). Ancak writefunction otpion sert 'HTTR' Muhtemelen RCurl kullanmak ve uygun `writefunction tanımlamak gerekir

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

' kodlanmıştır görünür. @Martin Morgan'dan gelen çözümü Create a C-level file handle in RCurl for writing downloaded files çözümüne gidilecek gibi görünüyor.

+0

teşekkür ederim! Sanırım cevaba daha yakınım, ama hala çalışmıyor. Tüm kodumu 'httr'den 'RCurl''e taşıdım ve @Martin Morgan’ın cevabını ekledim ve şimdi çok farklı olduğu için [bu yeni soru] yazdım (http://stackoverflow.com/ sorular/17329288/nasıl yapılır-a-büyük-ikili-dosya-ile-rcurl-sunucu-kimlik doğrulaması sonrası) .. 'httr' ile bir çözüm olduğunu sanmıyorum? –

+0

Lütfen bir hata yapın - httr bunu yapabilmelidir (varsayılan olmasa da) – hadley

+0

tamamlandı. teşekkürler @hadley –

İlgili konular