更新时间:2024-11-12 GMT+08:00

上传文件到OBS

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

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

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

如果需要将文件上传到其他用户的OBS中,需执行以下操作。
  1. 通过项目入口方式访问CodeArts Build服务首页
  2. 在导航栏选择设置 > 通用设置 > 服务扩展点管理
  3. “新建服务扩展点”下拉框中选择“IAM账户”,在弹出的窗口中填写以下信息,单击“确定”
    • 连接名称:服务扩展点的名称,可自定义。支持中文、英文、数字、“-”、“_”、“.”、空格,不超过256个字符。
    • Access Key ID/Secret Access Key:表示一组密钥对,用于验证调用API发起请求的访问者身份,与密码的功能相似。

      在编译构建服务首页,单击“控制台”,然后将鼠标置于右上角用户名处,在下拉框中单击“我的凭证”,左侧导航栏中选择“访问密钥”可创建用户的密钥信息。

图形化构建

配置构建步骤中,添加“上传文件到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头域

可选参数。

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

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

失败后是否继续运行

当前步骤执行失败后是否继续执行下一个步骤,根据实际使用场景选择是或否。

代码化构建

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
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}
           ignore_fail: true
表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中存放的网页被第三方网页嵌入。

ignore_fail

string

用于控制当前步骤执行失败后是否继续执行下一个步骤。
  • true:是。
  • 为空:否。