如何使用Azure管道将文件上传到FTP服务器?

问题描述 投票:0回答:1

情况

我想将发布版本作为.zip文件上传到我的FTP服务器中

对于这种情况,我们假设这是我的环境。

应用程序类型:控制台

我要上传的文件夹:$(System.DefaultWorkingDirectory)/CompanyName.ProjectName.Console/bin/Release

我的ftp服务器主机:ftp://00.00.00.00:21/folderTest

ftp用户名:MyUsername

ftp密码:MyPassword

对于Azure代理:我允许this(168.63.129.16)ip地址能够与我的ftp服务器通信

azure管道

trigger:
- master

pool:
  vmImage: 'windows-latest'

variables:
  solution: '**/*.sln'
  buildPlatform: 'Any CPU'
  buildConfiguration: 'Release'

steps:
- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: '$(solution)'

- task: VSBuild@1
  inputs:
    solution: '$(solution)'
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- task: VSTest@2
  inputs:
    platform: '$(buildPlatform)'
    configuration: '$(buildConfiguration)'

- publish: $(System.DefaultWorkingDirectory)/CompanyName.ProjectName.Console/bin/Release
  artifact: CompanyName Project Name

- task: FtpUpload@2
  displayName: 'FTP Upload'
  inputs:
    credentialsOption: inputs
    serverUrl: 'ftp://00.00.00.00:21'
    username: MyUsername
    password: MyPassword
    rootDirectory: '$(System.DefaultWorkingDirectory)/CompanyName.ProjectName.Console/bin/Release'
    remoteDirectory: '/folderTest'
    trustSSL: true

问题

当我提交(出于测试目的)某些内容时发生以下错误。

## [错误]错误:连接ETIMEDOUT 00.00.00.00:21(控制插座)

## [错误] Ftp上传失败

azure azure-devops ftp azure-pipelines
1个回答
0
投票

[错误]错误:连接ETIMEDOUT 00.00.00.00:21(控制插座)

我复制了相同的问题,并确认此问题与您的FTP服务器更相关。

由于您使用的Microsoft托管代理与FTP服务器所在的VM不在同一网络中,因此应确保可以从external网络访问ftp服务器。否则,预期的行为将在下面显示错误:

enter image description here

我们可以轻松创建一个可由internal网络访问的ftp服务器。但是要使它可以从external网络访问,我们需要做更多的工作。您可能会从此issue获得有用的信息。

(很容易在网上找到许多有关如何使本地ftp服务器可从外部/外部网络或Internet访问的相关文档,因此在这里我不多谈论它们。)

以下是两种可能的解决方案:

1。在存在FTP服务器的VM中安装self-hosted代理,然后调用自托管代理而不是Microsoft托管(vmImage: 'windows-latest')代理来运行作业。由于自助代理与FTP服务器位于同一网络中,因此构建管道可以成功。

2。配置您的ftp服务器以使其可从外部网络访问。

© www.soinside.com 2019 - 2024. All rights reserved.