usuario puedo para otro link enlace directa descargar descarga crear compartir compartido como archivos archivo abrir macos bash unix curl dropbox

macos - puedo - dropbox descarga directa



Use curl para descargar una carpeta de Dropbox a través de un enlace compartido(no enlace público) (2)

¿Un enlace compartido sigue siendo "público" a menos que especifique un enlace protegido por contraseña?

1: Tu problema inmediato es que Curl no está siguiendo los redireccionamientos.
Dropbox no solía redirigir tanto, pero parece hacerlo regularmente estos días.

2: (Opcional) Dropbox ya envía un Encabezado de disposición de contenido con su nombre de archivo de Dropbox.
No hay ninguna razón para especificar el nombre del archivo si usa los indicadores de curvatura correctos.
(A menos que desee forzarlo (usando -o ) a otra cosa).

Solo usa esto en CURL:

curl https://www.dropbox.com/sh/AAbbCCEeFF123?dl=1 -O -J -L

Conserva el nombre de archivo remoto ( -O , -J ) y sigue los redireccionamientos ( -L ).

No olvides cambiar el parámetro ?dl=0 a ?dl=1
Esta misma línea funciona tanto para archivos compartidos individualmente como para carpetas enteras.
(Las carpetas se guardarán como .Zip automáticamente, según el nombre de la carpeta).

Consultar: https://curl.haxx.se/docs/manpage.html#OPTIONS (Ver: -O , -J , -L )

Dropbox facilita la descarga programática de un solo archivo mediante curl (EX: curl -O https://dl.dropboxusercontent.com/s/file.ext ). Es un poco más complicado para una carpeta (carpeta de directorio normal, no comprimida). El enlace compartido para una carpeta, a diferencia de un archivo, no se vincula directamente a la carpeta comprimida (Dropbox comprime automáticamente la carpeta antes de que se descargue). Parecería que simplemente podría agregar ?dl=1 al final del enlace, ya que esto iniciará la descarga directamente en un navegador. Sin embargo, esto apunta a un documento html intermediario que redirige a la carpeta zip real y no parece funcionar con curl. ¿Hay alguna forma de usar Curl para descargar una carpeta a través de un enlace compartido? Me doy cuenta de que la mejor solución sería usar la API de Dropbox, pero para este proyecto es importante mantenerlo lo más simple posible. Además, la solución debe incorporarse en un script de bash shell.


Parece ser posible con Curl utilizando la opción -L . Esto obliga a curl a seguir la redirección. Además, es importante especificar un nombre de salida con una extensión .zip, ya que el valor predeterminado será un nombre alfanumérico aleatorio sin extensión. Finalmente, no olvide agregar el ?dl=1 al final del enlace. Sin él, curl nunca llegará a la página de redirección.

curl -L -o newName.zip https://www.dropbox.com/sh/[folderLink]?dl=1