2011-09-16 16 views
21

Duplicar posible:
How do I save a file using the response header filename with cURL¿Cómo puedo conservar el nombre del archivo remoto al descargar un archivo utilizando rizo

tengo que descargar muchos miles de imágenes en el formato

http://oregondigital.org/cgi-bin/showfile.exe?CISOROOT=/baseball&CISOPTR=0

Si pega ese enlace en un navegador, yo t intenta descargar un archivo llamado 1.jp2

Quiero usar curl para hacer lo mismo. Sin embargo, cuando corro

rizo -I 'http://oregondigital.org/cgi-bin/showfile.exe?CISOROOT=/baseball&CISOPTR=0'

el nombre del archivo es reportado como 404.txt que se puede descargar y ver que en realidad es el archivo que quiero. No puedo usar la opción -O porque el nombre asignado al archivo no es bueno, y tengo razones técnicas para necesitar el nombre real utilizado en el sistema.

¿Cómo obtengo Curl para descargar el mismo archivo que no tengo problemas para recuperar en mi navegador? Gracias.

+0

Supongo que esto está relacionado de alguna manera con el agente de usuario de la persona que llama, aunque lo intenté añadiendo el UA de Chrome y eso no ayudó. –

Respuesta

34

[editar] Eliminé los intentos de modificación de la cabecera ... la solución era mucho más simple! [/ Editar]

y Eureka! la solución es utilizar -O -J

-O, --remote-name   Write output to a file named as the remote file 
-J, --remote-header-name Use the header-provided filename 

Entonces ...

curl -O -J 'http://oregondigital.org/cgi-bin/showfile.exe?CISOROOT=/baseball&CISOPTR=0' 

TA DA!

Tuve que actualizar mi CURL. Tenía v 7.19 que no admite -J pero 7.22 (que es lo último) lo hace.

+1

@ Dr.Debel, solo necesita '-J' y ninguno de' -H' solo: 'curl -O -J 'http://oregondigital.org/cgi-bin/showfile.exe?CISOROOT=/baseball&CISOPTR= 0'' –

-1

Puede usar la opción -o, ¿o sí? por ejemplo,

curl 'http://oregondigital.org/cgi-bin/showfile.exe?CISOROOT=/baseball&CISOPTR=[0-9]' -o "#1.jpg" 
+0

él dice justo en su pregunta que no puede usar el -O porque él no quiere que el nombre del archivo sea showfile.exe? ... etc. ¡Atención! :) –

+0

Bueno, deberías prestar atención también. Es una "o" pequeña, y tiene la capacidad de permitir que el usuario defina el nombre del archivo. –

+0

el usuario no puede definir el nombre del archivo en este caso ... viene del encabezado de la respuesta entrante –

Cuestiones relacionadas