通过 ftp(lftp 命令) 上传制品
username: FTP 用户名password: FTP 密码hostname: FTP 主机,包括端口clean_dir: 如果设置为 true,将在文件传输之前先删除目标目录(dest_dir)。与 only_newer 不能同时使用chmod: 如果为 false,将在文件传输后强制执行文件权限更改。默认为空verify: 如果为 true,则强制 SSL 证书验证,否则无验证。true 或 false,默认: falsesecure: 是否使用 SSL 加密。true: 使用 SSL 加密来保护 FTP 数据传输的隐私和安全。
false 或未设置: 不使用 SSL 加密dest_dir: 将文件放在远程服务器上的位置。例如:/path/to/destsrc_dir: 用于上传的本地目录。例如:/path/to/srcexclude: egrep-like 模式匹配从上传的文件中排除文件,支持数组格式或逗号分隔include: egrep 类模式匹配要上传的文件,支持数组格式或逗号分隔auto_confirm: 该参数有值时,表示启用 SFTP 自动确认功能。默认不启用自动确认。
在 SFTP 传输过程中,有时会遇到需要用户确认的操作,例如文件权限更改、文件删除等。
默认情况下,lftp 会在遇到这些操作时提示用户进行确认。
然而,在某些情况下,用户可能希望自动确认这些操作,以避免手动干预。pre_action: 在文件传输之前在服务器上执行的命令(在clean_dir之前执行)post_action: 在文件传输之后在服务器上执行的命令debug: 该参数有值时,启用调试模式;当参数为空时不启用调试模式。
lftp 命令以调试模式启动时,将输出详细的调试信息,包括发送和接收的网络数据包、内部状态变化等。main:
push:
- stages:
- name: deploy
image: tencentcom/ftps
# 引用密钥仓库配置文件
imports: https://cnb.cool/group/secret-repo/-/blob/main/env.yml
settings:
hostname: example.com:21
src_dir: ./
dest_dir: /data/release
exclude: ^\.git/$
# 用户名,来自 imports 的文件中的环境变量
username: $LOGIN_USER
# 密码,来自 imports 的文件中的环境变量
password: $LOGIN_PASSWORD
为了避免用户名和密码暴露, 建议引用密钥仓库 里的文件获取 username 和 password,例如:
# https://cnb.cool/group/secret-repo/-/blob/main/env.yml 的文件内容
LOGIN_USER: xxx
LOGIN_PASSWORD: xxx
# 声明指定镜像的插件任务能引用该配置文件
allow_images:
- tencentcom/ftps
# 声明指定仓库的流水线能引用该配置文件
allow_slugs:
- groupname/reponame