Access

Realizar una operación FTP a través de VBA usando curl

Entonces, en mi publicación anterior, demostré cómo podríamos usar curl a través de VBA para descargar archivos o páginas web completas:

Hoy pensé que podríamos explorar el uso de curl para realizar varias operaciones FTP:

  • Listado de archivos del directorio
  • Subir un archivo
  • Descargar un archivo
  • Eliminar un archivo
  • Crear un directorio
  • Eliminar un directorio

Comandos básicos de curl

Listado de archivos del directorio

La sintaxis básica del comando curl para obtener una lista de archivos es:

curl "ftp://yourwebsite.com:21/yourfolder/yoursubfolder/" --user "yourusername:yourpassword" --ssl-reqd

o

curl "ftp://yourwebsite.com:21/yourfolder/yoursubfolder/" --user "yourusername:yourpassword" --ssl-reqd --list-only

Subir un archivo

La sintaxis básica del comando curl para cargar un archivo al servidor es:

curl "ftp://yourwebsite.com:21/yourfolder/yoursubfolder/" --user "yourusername:yourpassword" --ssl-reqd -T "C:\Temp\mail.txt" --ftp-create-dirs

donde ‘C:\Temp\mail.txt’ es el archivo que se debe cargar al servidor y –ftp-create-dirs le indica a curl que cree la estructura de carpeta ‘/yourfolder/yoursubfolder/’ si aún no existe. Por lo tanto, –ftp-create-dirs es un argumento opcional que se incluye solo si ese es el comportamiento que se desea tener; de lo contrario, se omite.

Descargar un archivo

La sintaxis básica del comando curl para descargar un archivo del servidor es:

curl "ftp://yourwebsite.com:21/yourfolder/yoursubfolder/somefile.ext" --user "yourusername:yourpassword" --ssl-reqd -o "C:\Temp\mydownloadedfile.txt"

donde ‘/tucarpeta/tusubcarpeta/algunarchivo.ext’ es el archivo que se descargará a/como ‘C:\Temp\miarchivodescargado.txt’.

Tenga en cuenta que curl simplemente sobrescribe los archivos existentes, por lo que debe agregar cualquier verificación necesaria en su código VBA para verificar de antemano si es necesario para sus propósitos.

Eliminar un archivo

La sintaxis básica del comando curl para eliminar un archivo del servidor es:

curl "ftp://yourwebsite.com:21/yourfolder/yoursubfolder/somefile.ext" --user "yourusername:yourpassword" --ssl-reqd -Q "DELE /yourfolder/yoursubfolder/mail.txt"

donde ‘/sucarpeta/susubcarpeta/mail.txt’ es el archivo que se eliminará.

Tenga en cuenta también que dependiendo del servidor, el comando para eliminar varía y he utilizado: DELE, DELETE y rm (puede haber otros).

Crear un directorio

La sintaxis básica del comando curl para crear un directorio en el servidor es:

curl "ftp://yourwebsite.com:21/yourfolder/yoursubfolder/yoursubsubfolder" --user "yourusername:yourpassword" --ssl-reqd --ftp-create-dirs

donde el directorio a crear es ‘/tucarpeta/tusubcarpeta/tusubsubcarpeta’.

Tenga en cuenta que curl creará una estructura de directorio anidada completa. ¡No es necesario crear cada directorio uno a la vez!

Eliminar un directorio

La sintaxis básica del comando curl para eliminar un directorio en el servidor es:

curl "ftp://yourwebsite.com:21/yourfolder/yoursubfolder/" --user "yourusername:yourpassword" --ssl-reqd -Q "RMD /yourfolder/yoursubfolder/yoursubsubfolder"

En este ejemplo, se eliminará ‘yoursubsubfolder’.

Tenga en cuenta que los directorios deben eliminarse uno a la vez y solo se pueden eliminar una vez que estén vacíos.

Comentario general

  • Hagas lo que hagas, asegúrate siempre de utilizar –ssl-reqd para todas y cada una de las operaciones FTP.
  • ¡Pruebe, pruebe y pruebe antes de intentar cualquier cosa de esto en cualquier entorno real!
  • Al comenzar a utilizar cualquier comando curl, es posible que desee agregar el argumento -v para obtener una salida detallada y así obtener más detalles sobre la operación. Esto es especialmente cierto cuando intenta solucionar problemas, ya que normalmente obtendrá mucha más información sobre el problema.

Comandos FTP de VBA curl

Tal como lo demostré con el correo electrónico o los procedimientos de descarga, podemos empaquetar fácilmente cualquiera de ellos y crear rutinas VBA reutilizables.

¡Muy pronto!

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba