mac - Utilidad de línea de comandos para la carga de WebDAV
webdav synology (8)
La utilidad HTTP de línea de comandos más utilizada parece ser cURL , que hará PUT
con su opción -T . Sin embargo, deberías entender un poco el protocolo WebDAV para hacer más que cargar con él.
Necesito una utilidad de línea de comandos que pueda realizar la carga de WebDAV (HTTP PUT).
Otra opción es "davix".
https://dmc.web.cern.ch/projects/davix/home
ha separado utilidades como davix-mkdir davix-put, etc. Puede especificar credenciales en la URL como
davix-mkdir http://user:[email protected]/dir_to_create
davix-put local_file http://user:[email protected]/dir_to_create/remote_file_name
Si necesita cargar el directorio completo en lugar de un archivo a través de WebDAV, puede utilizar el siguiente enfoque.
Imagina que tienes la siguiente carpeta local que vas a cargar a través de WebDAV.
local_folder_to_upload
│ test.txt
│ test1.txt
│
└───nested_folder1
│ │ file1.txt
│ │ file2.txt
│ │
│ └───nested_folder2
│ │ file11.txt
│ │ file12.txt
1. Primero debe crear directorios anidados desde su carpeta local (si los tiene) en un servidor. Dado que WebDAV no admite la carga recursiva, debe hacerlo en un paso separado ( si tuviera que usar ftp
, agregaría la --ftp-create-dirs
para hacer esto). Para crear esas carpetas a través de WebDAV necesita usar el método MKCOL .
curl -X MKCOL ''http://your.server/uploads/nested_folder1'' --user ''name:pwd''
curl -X MKCOL ''http://your.server/uploads/nested_folder1/nested_folder2'' --user ''name:pwd''
Tenga en cuenta que no puede crearlos en una solicitud de acuerdo con la especificación .
Si se realiza una solicitud para crear la colección / a / b / c / d / y no existe / a / b / c /, la solicitud debe fallar.
2. En segundo lugar, puede utilizar la salida del comando Find shell para cargarlo en su servidor utilizando curl
.
cd local_folder_to_upload && find . -exec curl -T {} ''http://your.server/uploads/{}'' --user ''name:pwd'' /;
El código anterior repite todos los archivos dentro del directorio dado (usando buscar) y agrega la salida (nombre de archivo con ruta relativa) al marcador de posición {}
en la url de su servidor web. Por lo tanto, realiza múltiples solicitudes (una por cada archivo) y, dado que todas las carpetas anidadas se crearon de antemano, esas solicitudes no deberían fallar.
Espero que sea de ayuda para alguien.
Use KIO bajo KDE:
kioclient cp file.txt ''webdavs://[email protected]:443/''
cURL lo hará por ti.
curl -T filetoput.xml http://www.url.com/filetoput.xml
Esta descripción general contiene una lista completa de servidores y clientes de webdav.
Optaría por un cadáver o, si mis necesidades fueran muy específicas, un script de Python utilizando la biblioteca PyWebDAV .
WinSCP gratuito (para Windows) es compatible con WebDAV (y WebDAVS).
WinSCP también admite operaciones de guión / línea de comandos.
Ejemplo de secuencia de comandos WinSCP para cargar un archivo a través de WebDAV:
open https://[email protected]/
put file.txt /path/
exit
Guarde el script en un archivo (por ejemplo, script.txt
) y ejecute como:
winscp.com /script=script.txt
También puedes poner todo en una sola línea:
winscp.com /command "open https://[email protected]/" "put file.txt /path/" "exit"
Comience con la introducción a las secuencias de comandos con WinSCP .
Incluso puede hacer que WinSCP GUI genere el archivo de script para usted .
(Soy el autor de WinSCP)