2

用 Jenkins 制作文件上传入口

 2 years ago
source link: https://www.lfhacks.com/tech/jenkins-upload-portal
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

用 Jenkins 制作文件上传入口

扫一扫,用手机分享 qr.php?ByRebldqB3QAIlUkWioGbQxzU3xSKw0kUnUMKlVvVDRSbA5iUWdUOFZzAywEZAs1U25fcA50DzRSYQ1tVC1TPwc0Xj1XaQdpADhVJ1p0BiIMLFM%2FUjMNMlJmDClVc1Q9UnYOd1FlVD9WJgN2BDoLa1M1X20ONA9lUjcNNlQzU2UHZw%3D%3D
1652.jpg

当我们希望上传文件到服务器上时,临时写一个上传页面是很麻烦的。好在 Jenkins 提供了文件参数控制器,方便我们上传文件到服务器上,并做进一步处理。本文详细介绍具体步骤。

下面一步步的介绍如何添加一个文件上传入口。

Jenkins 的 File Parameter 控件

在Jenkins 的 Job 配置界面内,新建一个 File Parameter 如下图。

在控件的设置项中,只有一个『文件路径』字段,含义比较模糊。点开旁边的帮助按钮,里面的解释也是含混不清。

经过自己的摸索,终于弄清楚了这个配置项的含义,在这里重点解释下。

首先这个名称是误导性的:『文件路径』和上传文件的路径毫无关系。实际的含义是,如果按上图中,在『文件路径』中填入 testfile,当文件上传后,将发生两件事情:

  • 文件上传到 jenkins 的 workspace 中,然后重命名为 testfile
  • 文件上传前的名称(在用户的文件系统中的名称),保存在 ${testfile} 变量中

接下来,我们可以通过 ${testfile} 变量,将上传的文件改回原来的名字,或者做其他操作。

我们设计以下使用场景:每个 Jenkins 用户都使用这个上传页面上传文件,同时此 Job 能将上传的文件转移到用户自己的目录下。

实现脚本如下:

mkdir -p /path/to/download/${BUILD_USER}
mv testfile /path/to/download/${BUILD_USER}/${testfile}

如果每个 Jenkins 用户都希望上传后能浏览到自己的文件,那么可以再部署一个下载服务。见 下节 中的介绍。

和下载服务器配合

如果我们希望上传后的文件同时提供下载服务,可以和 这篇文章 中介绍的下载服务器配合。原理图如下:

上图中,服务器同时提供了上传页面(由 Jenkins 提供)和下载页面(由 nginx 提供)服务。如果将 上节中 Jenkins 的保存路径和 nginx的下载路径 设置为同一个目录,就能实现同时上传下载。

上传页面可以方便的扩展使用,比如 这篇文章 可以将上传的文件自动生成下载的二维码。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK