【问题标题】:How to upload files to FTP Server using Azure pipelines?如何使用 Azure 管道将文件上传到 FTP 服务器?
【发布时间】:2020-03-12 15:12:09
【问题描述】:

情况

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

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

应用程序类型:控制台

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

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

ftp 用户名:我的用户名

ftp 密码:MyPassword

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

天蓝色管道

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

问题

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

##[error]Error: connect ETIMEDOUT 00.00.00.00:21(控制套接字)

##[错误]Ftp 上传失败

【问题讨论】:

    标签: azure azure-devops ftp azure-pipelines


    【解决方案1】:

    [错误]错误:连接ETIMEDOUT 00.00.00.00:21(控制套接字)

    我重现了同样的问题,并确认此问题与您的 FTP 服务器有关。

    由于您使用的 microsoft 托管代理与 FTP 服务器所在的 VM 不在同一网络中,因此您应确保可以从 外部 网络访问您的 ftp 服务器。否则,预期的行为会出现以下错误:

    我们可以轻松地创建一个可以通过内部网络访问的 ftp 服务器。但要使其能够从外部网络访问,我们需要做更多的额外工作。您可以从这个issue 获得有用的信息。

    (网上很容易找到很多关于如何使本地ftp服务器可以从外网/外网或者Internet访问的相关文档,这里就不多说了……)

    这里有两种可能的解决方案:

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

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

    【讨论】:

    • 感谢您的回复,我实际上配置了我的 FTP 服务器:我的 IP 地址有问题(我认为)。我可以对我的服务器说只允许 168.63129.16 上传还是必须将其公开给所有知道 FTP 用户名和密码的人?
    • Can I say to my server to allow only 168.63129.16 to upload or do I have to make it public for everyone who knows FTP UserName and Password? 恐怕是这样,ftp上传任务需要进入服务连接。创建服务连接时,我们需要提供Url、用户名、密码,所以我们应该把它公开给所有知道FTP用户名和密码的人,否则服务连接是没有意义的,对吧?嗯,我对你的 ip 有点困惑,00.00.00.00,你在用这个吗?这看起来不像正常格式...
    • 正如我在问题中所描述的:00.00.00.00 只是我的场景的虚拟值,IRL 我有一个真实的主机 IP。关于第一个声明:不,我可能只想将一些 IP 地址“列入白名单”。然而我的实际问题是:MS 代理的 IP 是 168.63.129.16 还是我应该将其他 MS IP 列入白名单?提前致谢。
    猜你喜欢
    • 1970-01-01
    • 2021-11-03
    • 2011-09-25
    • 2014-10-17
    • 1970-01-01
    • 2011-03-14
    • 2016-01-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多