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:
- Edite la canalización y seleccione Variables.
- Agregar una nueva variable con el nombre
System.Debugy el valortrue - 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.