文档首页/ 数字内容生产线 MetaStudio/ API参考/ 资产管理/ 数字资产管理/ 转移资产任务控制 - ExecuteTransferAssetAction
更新时间:2025-11-21 GMT+08:00
分享

转移资产任务控制 - ExecuteTransferAssetAction

功能介绍

转移资产任务控制

调用方法

请参见如何调用API

授权信息

账号具备所有API的调用权限,如果使用账号下的IAM用户调用当前API,该IAM用户需具备调用API所需的权限,具体权限要求请参见权限和授权项

URI

POST /v1/{project_id}/digital-assets-action/transfers/{job_id}/{action}

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID,获取方法请参考获取项目ID

job_id

String

任务ID。

action

String

控制。

cancel:取消资产转移,仅转移发起方可调用。

accept:接受资产转移,仅转移接受方可调用。

accept_confirm:确认接受资产转移,仅转移接受方可调用,仅需要计费的转移需再次确认。

reject: 拒绝资产转移,仅转移接受方可调用。

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-App-UserId

String

第三方用户ID。不允许输入中文。

X-Auth-Token

String

用户Token。使用Token鉴权方式时必选。

通过调用IAM服务获取用户Token接口获取。

响应消息头中X-Subject-Token的值。

Authorization

String

使用AK/SK方式认证时必选,携带的鉴权信息。

X-Sdk-Date

String

使用AK/SK方式认证时必选,请求的发生时间。

格式为(YYYYMMDD'T'HHMMSS'Z')。

表3 请求Body参数

参数

是否必选

参数类型

描述

reason

String

拒绝理由

响应参数

状态码:200

表4 响应Header参数

参数

参数类型

描述

X-Request-Id

String

请求ID。

表5 响应Body参数

参数

参数类型

描述

accept_respone

TransAcceptResponse object

表6 TransAcceptResponse

参数

参数类型

描述

is_need_billing

Boolean

资产转移时,是否需要从接收方扣减资源(产生计费话单)

默认取值:

false

required_resources

Array of BillResources objects

需要扣减的资源列表。

表7 BillResources

参数

参数类型

描述

resource_type

String

资源类型。

当前支持的形象资源类型如下:

  • 2D_DIGITAL_HUMAN_BASIC:形象制作基础版

  • 2D_DIGITAL_HUMAN_ADVANCED:形象制作高级版

  • 2D_DIGITAL_HUMAN_FLEXUS:形象制作FLEXUS版

当前支持的声音资源类型如下:

  • VOICE_BASIC: 声音制作基础版

  • VOICE_MIDDLE: 声音制作进阶版

  • VOICE_ADVANCE:声音制作高级版

  • VOICE_THIRD_PARTY:声音制作第三方出门问问

  • VOICE_THIRD_PARTY_LJZN: 声音制作第三方逻辑智能

  • VOICE_FLEXUS: 声音制作Flexus版资源

resource_nums

Integer

资源数量。

取值范围:

0~1000000

状态码:400

表8 响应Body参数

参数

参数类型

描述

error_code

String

错误码。

error_msg

String

错误描述。

请求示例

POST https://{endpoint}/v1/6a6a1f8354f64dd9b9a614def7b59d83/digital-assets/transfers/b2f8a9e9c39b6dc7ed4c0cfd67366c6a/confirm

响应示例

状态码:400

请求传参异常,包含错误码及对应描述。

{
  "error_code" : "MSS.00000003",
  "error_msg" : "Invalid parameter"
}

SDK代码示例

SDK代码示例如下。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.metastudio.v1.region.MetaStudioRegion;
import com.huaweicloud.sdk.metastudio.v1.*;
import com.huaweicloud.sdk.metastudio.v1.model.*;


public class ExecuteTransferAssetActionSolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");
        String projectId = "{project_id}";

        ICredential auth = new BasicCredentials()
                .withProjectId(projectId)
                .withAk(ak)
                .withSk(sk);

        MetaStudioClient client = MetaStudioClient.newBuilder()
                .withCredential(auth)
                .withRegion(MetaStudioRegion.valueOf("<YOUR REGION>"))
                .build();
        ExecuteTransferAssetActionRequest request = new ExecuteTransferAssetActionRequest();
        request.withJobId("{job_id}");
        request.withAction("{action}");
        TransJobRejectBody body = new TransJobRejectBody();
        request.withBody(body);
        try {
            ExecuteTransferAssetActionResponse response = client.executeTransferAssetAction(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkmetastudio.v1.region.metastudio_region import MetaStudioRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkmetastudio.v1 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]
    projectId = "{project_id}"

    credentials = BasicCredentials(ak, sk, projectId)

    client = MetaStudioClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(MetaStudioRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = ExecuteTransferAssetActionRequest()
        request.job_id = "{job_id}"
        request.action = "{action}"
        request.body = TransJobRejectBody(
        )
        response = client.execute_transfer_asset_action(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    metastudio "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/metastudio/v1"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/metastudio/v1/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/metastudio/v1/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")
    projectId := "{project_id}"

    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        WithProjectId(projectId).
        Build()

    client := metastudio.NewMetaStudioClient(
        metastudio.MetaStudioClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.ExecuteTransferAssetActionRequest{}
	request.JobId = "{job_id}"
	request.Action = "{action}"
	request.Body = &model.TransJobRejectBody{
	}
	response, err := client.ExecuteTransferAssetAction(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。

状态码

状态码

描述

200

成功。

400

请求传参异常,包含错误码及对应描述。

错误码

请参见错误码

相关文档