Tarea de Upload FTP

Azure Pipelines | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018 | TFS 2017

Use esta tarea para cargar archivos en un equipo remoto mediante protocolo de transferencia de archivos (FTP) o de forma segura con FTPS.

Nota

En Microsoft Team Foundation Server (TFS) 2018 y versiones anteriores, las canalizaciones de compilación y versión se denominan definiciones, las ejecuciones se denominan compilaciones, las conexiones de servicio se denominan puntos de conexión de servicio, las fases se denominan entornos y los trabajos se denominan fases.

Peticiones

Ninguno

Fragmento de código YAML

# FTP upload
# Upload files using FTP
- task: FtpUpload@2
  inputs:
    #credentialsOption: 'serviceEndpoint' # Options: serviceEndpoint, inputs
    #serverEndpoint: # Required when credentialsOption == ServiceEndpoint
    #serverUrl: # Required when credentialsOption == Inputs
    #username: # Required when credentialsOption == Inputs
    #password: # Required when credentialsOption == Inputs
    rootDirectory: 
    #filePatterns: '**' 
    #remoteDirectory: '/upload/$(Build.BuildId)/' 
    #clean: false 
    #cleanContents: false # Required when clean == False
    #preservePaths: false 
    #trustSSL: false 

Argumentos

Argumento Descripción
credsType
Método de autenticación
(Obligatorio) Uso de la conexión de servicio FTP o especificación de credenciales de conexión
Valor predeterminado: serviceEndpoint
Alias de argumento: credentialsOption
serverEndpoint
Conexión de servicio FTP
(Obligatorio) Seleccione la conexión de servicio para el servidor FTP. Para crear uno, haga clic en el vínculo Administrar y cree una nueva conexión de servicio genérico, escriba la dirección URL del servidor FTP para la dirección URL del servidor, Ejemplo, ftp://server.example.comy las credenciales necesarias.
Siempre se realizarán conexiones seguras independientemente del protocolo especificado(ftp://o ftps://) si el servidor de destino admite FTPS. Para permitir solo conexiones seguras, use el ftps:// protocolo. Por ejemplo, ftps://server.example.com. Las conexiones a servidores que no admiten FTPS producirán un error si ftps:// se especifica.
serverUrl
Dirección URL del servidor
(Requerido)
username
Nombre de usuario
(Requerido)
password
Contraseña
(Requerido)
rootFolder
Carpeta raíz
(Obligatorio) Carpeta de origen desde la que se cargan los archivos
Alias de argumento: rootDirectory
filePatterns
Patrones de archivo
(Obligatorio) Rutas de acceso de archivo o patrones de los archivos que se cargarán. Admite varias líneas de patrones de minimatch. Más información.
Valor predeterminado: **
remotePath
Directorio remoto
(Obligatorio) Upload archivos a este directorio en el servidor FTP remoto.
Valor predeterminado: /upload/$(Build.BuildId)/
Alias de argumento: remoteDirectory
enableUtf8
Habilitación de la compatibilidad con UTF8
(Opcional) Habilita la compatibilidad con UTF-8 para la conexión FTP ('OPTS UTF8 ON')
Valor predeterminado: false
clean
Eliminación del directorio remoto
(Obligatorio) Eliminación del directorio remoto, incluido su contenido antes de cargarlo
Valor predeterminado: false
cleanContents
Borrar el contenido del directorio remoto
(Obligatorio) Elimine de forma recursiva todo el contenido del directorio remoto antes de cargarlo. El directorio existente no se eliminará. Para mejorar el rendimiento, considere la posibilidad de usar en Delete remote directory su lugar.
Valor predeterminado: false
preservePaths
Mantener las rutas de acceso de los archivos
(Obligatorio) Si está seleccionada, la estructura de directorios local relativa se vuelve a crear en el directorio remoto donde se cargan los archivos. De lo contrario, los archivos se cargan directamente en el directorio remoto sin crear subdirectorios adicionales.
Por ejemplo, supongamos que la carpeta de origen es : /home/user/source/ y contiene el archivo: foo/bar/foobar.txty el directorio remoto es: /uploads/.
Si está seleccionada, el archivo se carga en: /uploads/foo/bar/foobar.txt. De lo contrario, a: /uploads/foobar.txt
Valor predeterminado: false
trustSSL
Certificado de servidor de confianza
(Obligatorio) Al seleccionar esta opción, el certificado SSL del servidor FTP es de confianza con ftps://, incluso si es autofirmado o no puede ser validado por una entidad de certificación (CA).
Valor predeterminado: false
customCmds
Comandos de FTP
(Opcional) Comandos FTP opcionales que se enviarán al servidor FTP remoto tras la conexión

Código Abierto

Esta tarea es de código abierto en GitHub. Los comentarios y las contribuciones son bienvenidos.

Preguntas más frecuentes

¿Dónde puedo obtener más información sobre los patrones de coincidencia de archivos?

Referencia de patrones de coincidencia de archivos

P: Tengo problemas con la publicación de mis artefactos. ¿Cómo puedo ver los registros detallados?

Para habilitar registros detallados para la canalización:

  1. Edite la canalización y seleccione Variables.
  2. Agregar una nueva variable con el nombre System.Debug y el valor true
  3. Guardar

P: ¿Qué variables están disponibles para mí?

A: $(Build.SourcesDirectory) y son solo algunas de las variables que puede usar en la $(Agent.BuildDirectory) canalización. Las variables están disponibles como expresiones o scripts.

Consulte Definición de variables,variables predefinidasy variables de versión clásica y artefactos para obtener información sobre los diferentes tipos de variables.

P: La tarea me permite publicar artefactos en el trabajo de implementación en la canalización yaml, pero no puedo usarlos en la canalización de nivel inferior.

A. Los trabajos de implementación no tienen el contexto de las ramas de origen y, por lo tanto, no son adecuados para publicar artefactos. Se han diseñado principalmente para consumir artefactos. Una solución alternativa sería aislar esa lógica en un trabajo independiente (con dependencias en los trabajos de implementación).

¿Necesito un agente?

Necesita al menos un agente para ejecutar la compilación o versión.

Tengo problemas. ¿Cómo puedo solucionarlos?

Vea Solución de problemas de compilación y versión.

No se puede seleccionar un grupo de agentes predeterminado y no se puede poner en cola la compilación o versión. ¿Cómo puedo corregirlo?

Vea Grupos de agentes.

La tarea de envío de cambios de NuGet genera el error siguiente: "Error: no se puede obtener el certificado del emisor local". ¿Cómo lo puedo corregir?

Esto se puede corregir si se añade un certificado raíz de confianza. Puede agregar la variable de entorno NODE_EXTRA_CA_CERTS=file al agente de compilación, o bien la variable de tarea NODE.EXTRA.CA.CERTS=file en la canalización. Vea la documentación de Node.js para obtener más detalles sobre esta variable. Consulte Establecimiento de variables en una canalización para obtener instrucciones sobre cómo establecer una variable en la canalización.

Utilizo TFS en el entorno local y no veo algunas de estas características. ¿Por qué no?

Algunas de estas características solo están disponibles en Azure Pipelines y todavía no lo están en el entorno local. Algunas características están disponibles en el entorno local si ha actualizado a la versión más reciente de TFS.