gpt4 book ai didi

macos - 使用 Jenkins 发布到 FTPS

转载 作者:行者123 更新时间:2023-12-01 09:17:55 24 4
gpt4 key购买 nike

我的供应商目前只提供 FTPS作为将文件上传到服务器的一种方式。

现在我想将文件从 Jenkins 发布到该服务器。我可以使用支持 FTPS 的 FTP 客户端访问服务器,但 FTP-Publisher 插件似乎都不能使用 FTPS 进行发布。

我发现的 FTPS 和 Jenkins 的唯一引用是这个 open bug .

我知道 SSH 是一个不错的选择,但由于我的托管服务提供商不支持这一点,我想知道如何通过 jenkins 有效地将文件上传到我的服务器。

我的 jenkins 服务器在 OSX 上运行。

更新 :根据我自己在下面的回答,我尝试了 CURL,但遇到了一般错误:

curl -v -T index.html ftps://myusername:mypassword@myserver.com:21/www/

  • Adding handle: conn: 0x7fa9d500cc00
  • Adding handle: send: 0
  • Adding handle: recv: 0
  • Curl_addHandleToPipeline: length: 1
  • Conn 0 (0x7fa9d500cc00) send_pipe: 1, recv_pipe: 0

    % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
    Dload Upload Total Spent Left Speed
    0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0*

    About to connect() to myserver.com port 21 (#0)

  • Trying xx.xx.xx.xx...
  • Connected to myserver.com (xx.xx.xx.xx) port 21 (#0)
  • Unknown SSL protocol error in connection to myserver.com:-9800
  • Closing connection 0

curl: (35) Unknown SSL protocol error in connection to myserver.com:-9800

最佳答案

目前没有 Jenkins 插件可以处理 FTPS(基于 SSL 的 FTP)。相反,cURL 程序能够使用 FTPS 上传。

首先检查 Jenkins 主机上是否安装了 cURL。

在 linux 环境中尝试以下命令:

which curl

现在确保 cURL 位于 Jenkins 用户帐户的路径中。或者完全限定 cURL 的路径。

现在使用后期构建步骤、任务或使用提升的构建插件添加包含以下内容的 shell 脚本:
FILEPATH=$WORKSPACE/path/to/some/file
REMOTEPATH=/new/path/for/file
curl -T $FILEPATH -u username:password ftps://myserver.com$REMOTEPATH

更正 $FILEPATH$REMOTEPATH来反射(reflect)环境。

例子:
FILEPATH=$WORKSPACE/index.html
REMOTEPATH=/www/index.html

如果远程主机上正在使用自签名证书,则 cURL 需要跳过验证。这是通过 -k 完成的范围。
curl -T $FILEPATH -u username:password -k ftps://myserver.com$REMOTEPATH

关于macos - 使用 Jenkins 发布到 FTPS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24036761/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com