更新时间:2024-07-31 GMT+08:00
分享

上传文件到OBS

CodeArts Build支持将构建产物上传至OBS中,您可以根据实际情况选择使用该构建步骤。

对象存储服务(OBS)的使用限制请参考约束与限制

上传文件到OBS前的准备工作

如果需要将文件上传到其他用户的OBS中,需新建IAM账户服务扩展点

图形化构建

配置构建步骤中,添加“上传文件到OBS”构建步骤,参考表1配置参数。

表1 上传文件到OBS参数说明

参数

说明

步骤显示名称

构建步骤的名称,可自定义修改。

  • 支持中文、英文、数字、“-”“_”、英文逗号、英文分号、英文冒号、“.”“/”、圆括号(中英文)。
  • 字符长度范围为1~128。

授权用户

选择需要推送的OBS所属用户。

  • 当前用户:上传到当前用户的OBS桶。
  • 其他用户:可以通过选择IAM账号的方式上传到指定用户的OBS中。

IAM账号

在下拉框中选择上传文件到OBS前的准备工作中创建的“IAM账户”服务扩展点,通过服务扩展点推送至其他用户的OBS中。

“授权用户”选择“其他用户”时需要配置该参数。

构建产物路径

构建结果所在路径,OBS存储文件名为空时,可使用通配符上传多个文件。如:maven可以使用**/target/*.?ar匹配所有构建出来的jar包和war包。

举例说明:
  • *.class:当前目录下匹配“.class”结尾的文件。
  • **/*.class:当前目录下递归匹配所有的“.class”结尾的文件。
  • test/a??.java:匹配“test”目录下以“a”开头后跟两个字符的java文件。
  • **/test/**/XYZ*:递归匹配父目录为“test”文件是“XYZ”开头的所有文件,比如“abc/test/def/ghi/XYZ123”。

桶名

填写目标OBS的桶名(不支持跨region上传)。

OBS存储目录

可选参数。

填写构建结果在OBS上的存储目录(如:application/version/),可留空,或填写“./”表示存储到OBS根目录。

OBS存储文件名

可选参数。

填写构建结果在OBS上的存储文件名(不包含目录)。
  • 留空时可上传多个文件,将构建产物文件名作为OBS存储文件名。
  • 不为空时只能上传单个文件,如:application.jar。

是否上传文件夹

配置是否开启上传文件夹。

  • 是:同步上传文件夹。
  • 否:仅上传文件。

忽略文件夹路径

可选参数。

配置忽略的文件夹路径。当上传文件夹时,会根据此路径忽略部分文件夹,不上传到OBS。

如产物路径填写为“target/api/api.jar”,忽略文件夹路径填写为“target”,obs存储目录为“./”,则会将“api.jar”上传到OBS桶的“api/api.jar”路径下。若路径无法匹配,则默认不忽略路径中的文件夹。

“是否上传文件夹”设置为“是”时,需要配置该参数。

OBS头域

可选参数。

上传文件时加入一个或多个自定义的响应头,当用户下载此对象或查询此对象元数据时,加入的自定义响应头会在返回消息的头域中出现。

如:“键”填写“x-frame-options”“值”填写成“false”,即可禁止OBS中存放的网页被第三方网页嵌入。

代码化构建

参考以下代码示例,修改在创建代码化构建使用的YAML文件中的BUILD部分代码信息。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
version: 2.0 # 必须是2.0
steps:
  BUILD:
    - upload_obs:
          inputs:
            artifact_path: "**/target/*.?ar"
            bucket_name: codecitest-obs
            obs_directory: "./"
          #   artifact_dest_name: ""
          #   upload_directory: true
          #   headers:
          #     x-frame-options: true
          #     test: test
          #     commit: ${commitId}
表2 代码示例参数说明

参数

类型

说明

artifact_path

string

可选参数。

构建结果所在路径,OBS存储文件名为空时,可使用通配符上传多个文件。如:maven可以使用**/target/*.?ar匹配所有构建出来的jar包和war包。

举例说明:
  • *.class:当前目录下匹配“.class”结尾的文件。
  • **/*.class:当前目录下递归匹配所有的“.class”结尾的文件。
  • test/a??.java:匹配“test”目录下以“a”开头后跟两个字符的java文件。
  • **/test/**/XYZ*:递归匹配父目录为“test”文件是“XYZ”开头的所有文件,比如“abc/test/def/ghi/XYZ123”。

默认值:bin/*。

bucket_name

string

填写目标OBS的桶名(不支持跨region上传)。

obs_directory

string

可选参数。

填写构建结果在OBS上的存储目录(如:application/version/),可留空,或填写“./”表示存储到OBS根目录。

默认值:./。

artifact_dest_name

string

可选参数。

填写构建结果在OBS上的存储文件名(不包含目录)。
  • 留空时可上传多个文件,将构建产物文件名作为OBS存储文件名。
  • 不为空时只能上传单个文件,如:application.jar。

upload_directory

bool

可选参数。

配置是否上传文件夹。

  • true:构建产物的文件夹也会同步上传。
  • false:会将匹配到的所有构建产物平铺上传到obs_directory的目录下。

默认值:false。

headers

map

可选参数。

上传文件时加入一个或多个自定义的响应头,当用户下载此对象或查询此对象元数据时,加入的自定义响应头会在返回消息的头域中出现。

例如:“x-frame-options”参数值配置为“false”,则表示禁止OBS中存放的网页被第三方网页嵌入。

相关文档