studio - Función httr GET que se queda sin espacio al descargar un archivo grande
no me deja instalar paquetes en r (2)
FYI - esto se ha agregado en el control write_disk()
en httr
: https://github.com/hadley/httr/blob/master/man/write_disk.Rd
Estoy tratando de descargar un archivo de 1.1 gigabytes con httr
pero estoy llegando al siguiente error:
x <- GET( extract.path )
Error in curlPerform(curl = handle$handle, .opts = curl_opts$values) :
cannot allocate more space: 1728053248 bytes
mi disco C tiene 400 GB gratis ...
en el paquete RCurl
, veo las opciones maxfilesize
y maxfilesize.large
cuando uso getCurlOptionsConstants()
pero no entiendo si / cómo se pueden pasar a httr
través de config
o set_config
... o si necesito cambiar a RCurl
para esto ... e incluso si necesito cambiar, ¿aumentará el trabajo de tamaño de archivo máximo?
aquí está mi sessionInfo ...
> 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
... y ( esto no se recomienda, solo porque te llevará un tiempo ) si quieres reproducir mi error, puedes ir a https://usa.ipums.org/usa-action/samples , registrarte para obtener un nuevo cuenta, elija el extracto de acs de 5 años 2011, agregue alrededor de cien variables y luego espere a que el extracto esté listo. luego edite las primeras tres líneas y ejecute el código a continuación. (de nuevo, no recomendado )
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 )
GET
llamadas httr:::make_request
esto establece las opciones de curl definidas en config = list()
. Sin embargo, parece que la writefunction
escritura está codificada en ''httr''
opts$writefunction <- getNativeSymbolInfo("R_curl_write_binary_data")$address
Probablemente necesites usar RCurl y definir una `función de escritura ''apropiada. La siguiente solución Crear un controlador de archivo de nivel C en RCurl para escribir archivos descargados de @Martin Morgan parece ser el camino a seguir.