资源分片上传
终端云测-兼容测试 menu

资源分片上传

更新于: 2021-08-25 16:37

1.获取上传ID

  • URI:/v1/files
  • 使用场景
    上传测试APP,上传测试脚本。
  • 简述
  1. 分片上传文件,包括脚本文件和APP文件
  2. 首先获取upload_id和分片总数
  3. 按照分片大小陆续读取文件,分片串行上传
    上传结束后,调用/v1/files/{upload_id}/app或者/v1/files/{upload_id}/script将文件记录为app或者脚本文件
    请求方法:GET
    请求参数:
参数名 来源 类型 必填 说明
User Header string 如果为平台类型的秘钥,可以传递User信息。不是平台类型的,不需要传递。
secretid query string 通用参数,所有请求需要带
size query interger
file_name query string
type query string android script ios
  • 返回 200
{
    "upload_info": {
        "chunk_number": interger, // 分片数量
        "chunk_size": interger,   // 分片大小,每次上传文件的buf大小
        "upload_id": "string"     // 新的upload_id,后续通过此标识上传,标识此次上传
    },
    "msg": "string",
    "ret": 0
}

2.上传分片

  • URI:/v1/files/{upload_id}/chunks/{chunk_number}
  • 使用场景
    利用获得的upload_id,上传文件的buffer。每次大小为上个接口返回的chunk_size,总共上传chunk_number片。
  • 简述
    串行上传文件分片
    请求方法:POST
    请求参数:
参数名 来源 类型 必填 说明
User Header string 如果为平台类型的秘钥,可以传递User信息。不是平台类型的,不需要传递。
secretid query string 通用参数,所有请求需要带
upload_id path string
chunk_number path int
file multipart/form-data binary
  • 返回 200
{
    "chunk_number":integer, // 第几个分片,下一次为此次+1
    "last_chunk": boolean,  // 是否为最后一个分片,如果为最后一个分片,则需要使用下方接口,转换为app或者script
    "msg": "string",
    "ret": 0
}

3.转换为app资源

  • URI:/v1/files/{upload_id}/app
  • 使用场景
    最后一个分片上传完毕之后,需要上传补充资源,完善APP信息,返回 app_id
    请求方法:POST
    请求参数:
参数名 来源 类型 必填 说明
User Header string 如果为平台类型的秘钥,可以传递User信息。不是平台类型的,不需要传递。
secretid query string 通用参数,所有请求需要带
upload_id path string
file body multipart/form-data “AndroidManifest.xml”, "resources.arsc"两个文件的打包文件
  • 返回 200
{
    "app": {
        "app_id": 0,           // app_id,后续提交任务需要的app_id,标识此文件
        "app_type": "string",  // APP类型
        "icon_path": "string", // APP中ICON的路径
        "name": "string",      // APP名
        "package": "string",   // APP package
        "size": 0,             // 文件大小
        "version": "string"    // APP版本
    },
    "msg": "string",
    "ret": 0
}

4.转换为script资源

  • URI:/v1/files/{upload_id}/script
  • 使用场景
    最后一个分片上传完之后,完善sript信息,返回script_id
    请求方法:POST
    请求参数:
参数名 来源 类型 必填 说明
User Header string
secretid query string 通用参数,所有请求需要带
upload_id path string
  • 返回 200
{
    "msg": "string",
    "ret": 0,
    "script": {
        "script_id": 0, // script_id,后续提交任务需要的script_id
        "size": 0       // 脚本大小
    }
}

5.通过app_id获取app信息

  • URI:/v1/apps/{app_id}
  • 使用场景
    通过之前上传的app_id信息,获取资源的信息。
    请求方法:POST
    请求参数:
参数名 来源 类型 必填 说明
User Header string 如果为平台类型的秘钥,可以传递User信息。不是平台类型的,不需要传递。
secretid query string 通用参数,所有请求需要带
app_id path string
  • 返回 200
{
    "app": {
        "app_id": 0,
        // app 类型
        "app_type": "string",
        // app 下载地址
        "app_url": "string",
        // app 名称
        "name": "string",
        // app 的package
        "package": "string",
        // app 的大小
        "size": 0,
        // app 的版本
        "version": "string"
    },
    "msg": "string",
    "ret": 0
}

6.通过script_id获取script信息

URI:/v1/scripts/{script_id}
使用场景
通过之前上传的script_id信息,获取资源的信息。
请求方法:GET
请求参数

参数名 来源 类型 必填 说明
User Header string 如果为平台类型的秘钥,可以传递User信息。不是平台类型的,不需要传递。
secretid query string 通用参数,所有请求需要带
script_id path string
  • 返回 200
{
	"script": {
		// 文件大小
		"size": 0,
		// script 下载地址
		"script_url": "string"
	},
	"msg": "string",
	"ret": 0
}
购买
客服
反馈