文档首页/ 云日志服务 LTS/ API参考/ API说明/ 日志转储/ 创建日志转储(新版)
更新时间:2025-08-13 GMT+08:00
分享

创建日志转储(新版)

功能介绍

该接口用于创建OBS转储,DIS转储,DMS转储。

调用方法

请参见如何调用API

URI

POST /v2/{project_id}/transfers

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

项目ID,可以从调用API处获取,也可以从控制台获取。获取方式请参见:获取项目ID

最小长度:32

最大长度:32

请求参数

表2 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

参数解释:

从IAM服务获取的用户Token,获取方式请参见:获取用户Token

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

Content-Type

String

参数解释:

用于定义消息体的格式,该字段填为:application/json;charset=utf8。

约束限制:

不涉及。

取值范围:

不涉及。

默认取值:

不涉及。

表3 请求Body参数

参数

是否必选

参数类型

描述

log_group_id

String

日志组ID。

log_streams

Array of LogStreams objects

日志流ID集合。

log_transfer_info

log_transfer_info object

日志转储信息

表4 LogStreams

参数

是否必选

参数类型

描述

log_stream_id

String

日志流ID。

log_stream_name

String

日志流名称。

表5 log_transfer_info

参数

是否必选

参数类型

描述

log_transfer_type

String

日志转储类型。OBS指OBS日志转储,DIS指DIS日志转储,DMS指DMS日志转储 。

log_transfer_mode

String

日志转储方式。cycle是指周期性转储,realTime是指实时转储。OBS转储只支持"cycle",DIS转储和DMS转储只支持"realTime"。

log_storage_format

String

日志转储格式。只支持"RAW", "JSON"。RAW是指原始日志格式,JSON是指JSON日志格式。

log_transfer_status

String

日志转储状态,只支持"ENABLE","DISABLE","EXCEPTION"。ENABLE是指日志转储开启状态,DISABLE是指日志转储关闭状态,EXCEPTION是指日志转储异常状态。

log_agency_transfer

log_agency_transfer object

委托转储信息。若配置委托转储,则需要输入该参数

log_transfer_detail

log_transfer_detail object

日志转储详细信息

表6 log_agency_transfer

参数

是否必选

参数类型

描述

agency_domain_id

String

参数解释:

委托方的账号ID。

取值范围:

不涉及。

agency_domain_name

String

参数解释:

委托方的账号名称。

取值范围:

不涉及。

agency_name

String

参数解释:

委托方配置的委托名称。

取值范围:

不涉及。

agency_project_id

String

参数解释:

委托方项目ID。

取值范围:

不涉及。

be_agency_domain_id

String

参数解释:

被委托方账号ID,实际为配置转储的账号ID。

取值范围:

不涉及。

be_agency_project_id

String

参数解释:

被委托方项目ID,实际为配置转储的项目ID。

取值范围:

不涉及。

表7 log_transfer_detail

参数

是否必选

参数类型

描述

obs_period

Integer

参数解释:

OBS转储时间。当创建OBS转储时,必填此参数。与obs_period_unit组合,即"obs_period"+"obs_period_unit",必须是"2min", "5min", "30min", "1hour", "3hour", "6hour","12hour"。

约束限制:

不涉及。

取值范围:

1,2,3,5,6,12,30

obs_period_unit

String

参数解释:

OBS转储单位。当创建OBS转储时,必填此参数。与obs_period组合,即"obs_period"+"obs_period_unit",必须是"2min", "5min", "30min", "1hour", "3hour", "6hour","12hour"。

约束限制:

不涉及。

取值范围:

min,hour

obs_bucket_name

String

参数解释:

OBS转储日志桶名称。当创建OBS转储时,必填此参数。

约束限制:

不涉及

obs_encrypted_id

String

参数解释:

OBS转储KMS密钥ID。根据OBS转储日志桶是否加密判断,若OBS转储日志加密桶则必须填写该参数,若OBS转储日志桶则不需要此参数

约束限制:

不涉及

obs_dir_pre_fix_name

String

参数解释:

OBS转储自定义转储路径。当创建OBS转储时,根据需要选填此参数。

约束限制:

不涉及

obs_prefix_name

String

参数解释:

OBS转储日志文件前缀。当创建OBS转储时,根据需要选填此参数。

约束限制:

不涉及

obs_time_zone

String

参数解释:

OBS转储时区。参数选择参考OBS转储时区表。如果选择该参数,则必须选择obs_time_zone_id。

约束限制:

不涉及

obs_time_zone_id

String

参数解释:

OBS转储时区ID。参数选择参考OBS转储时区表。如果选择该参数,则必须选择obs_time_zone。

约束限制:

不涉及

dis_id

String

参数解释:

DIS转储通道ID。当创建DIS转储时,必填此参数。

约束限制:

不涉及

dis_name

String

参数解释:

DIS转储通道名称。当创建DIS转储时,必填此参数。

约束限制:

不涉及

kafka_id

String

参数解释:

DMS转储kafka ID。当创建DMS转储时,必填此参数。创建DMS转储前,需要使用kafka ID以及kafka Topic进行实例注册。详情见接口注册DMSkafka实例

约束限制:

不涉及

kafka_topic

String

参数解释:

DMS转储kafka topic。当创建DMS转储时,必填此参数。创建DMS转储前,需要使用kafka ID以及kafka Topic进行实例注册。详情见接口注册DMSkafka实例

约束限制:

不涉及

obs_eps_id

String

参数解释:

OBS企业项目ID。

约束限制:

不涉及

obs_encrypted_enable

Boolean

参数解释:

OBS是否开启加密。

约束限制:

不涉及

tags

Array of strings

参数解释:

若开启tag投递,该字段必须包含主机信息:hostIP、hostId、hostName、pathFile、collectTime;

公共字段有:logStreamName、regionName、logGroupName、projectId,为可选填;开启转储标签:streamTag,可选填

约束限制:

不涉及

lts_tags

Array of strings

参数解释:

dms转储JSON格式选填,可以转储tag字段

约束限制:

不涉及

stream_tags

Array of strings

参数解释:

dms转储JSON格式选填,可以转储日志流标签字段

约束限制:

不涉及

struct_fields

Array of strings

参数解释:

dms转储JSON格式选填,可以转储结构化字段

约束限制:

不涉及

invalid_field_value

String

参数解释:

dms转储JSON格式选填,无效字段填充

约束限制:

不涉及

响应参数

状态码:200

表8 响应Body参数

参数

参数类型

描述

log_group_id

String

参数解释:

已创建的日志组ID。

取值范围:

不涉及。

log_group_name

String

参数解释:

已创建的日志组名称。

取值范围:

不涉及。

log_streams

Array of log_streams objects

参数解释:

日志组下的日志流详细信息。

log_transfer_id

String

参数解释:

已创建的日志转储ID。

取值范围:

不涉及

log_transfer_info

log_transfer_info_RespBody object

参数解释:

日志转储信息。

表9 log_streams

参数

参数类型

描述

log_stream_id

String

参数解释:

日志流ID。

取值范围:

不涉及。

log_stream_name

String

参数解释:

日志流名称。

取值范围:

不涉及。

表10 log_transfer_info_RespBody

参数

参数类型

描述

log_agency_transfer

log_agency_transfer object

参数解释:

转储委托的相关信息。

当转储的日志源为其他账号时,对委托人账号下所产生的日志进行转储,如需转储其他账号日志,需该账号使用者在IAM中创建委托。

log_create_time

Integer

参数解释:

日志转储的创建时间。

取值范围:

0-2147483647

log_storage_format

String

参数解释:

日志转储格式。有RAW(原始日志格式)和JSON。

不同转储对象,转储格式不同。 当转储对象为OBS或DIS时,支持JSON和RAM;当转储对象为DMS时,支持RAW。

取值范围:

  • RAW

  • JSON

log_transfer_detail

TransferDetail object

参数解释:

日志转储的相关信息。

log_transfer_mode

String

参数解释:

日志转储方式。有周期性转储(cycle)和实时转储(realTime)。

不同转储对象,转储方式不同。当转储对象为OBS时,支持周期性转储(cycle);当转储对象为DIS或DMS时,支持实时转储(realTime)。

取值范围:

  • cycle

  • realTime

log_transfer_status

String

参数解释:

日志转储状态。

取值范围:

  • ENABLE:日志转储开启状态。

  • DISABLE:日志转储关闭状态。

  • EXCEPTION:日志转储异常状态。

log_transfer_type

String

参数解释:

日志转储类型。

取值范围:

  • OBS:日志转储至OBS。

  • DIS:日志转储至DIS。

  • DMS:日志转储至DMS。

表11 log_agency_transfer

参数

参数类型

描述

agency_domain_id

String

参数解释:

委托方的账号ID。

取值范围:

不涉及。

agency_domain_name

String

参数解释:

委托方的账号名称。

取值范围:

不涉及。

agency_name

String

参数解释:

委托方配置的委托名称。

取值范围:

不涉及。

agency_project_id

String

参数解释:

委托方项目ID。

取值范围:

不涉及。

be_agency_domain_id

String

参数解释:

被委托方账号ID,实际为配置转储的账号ID。

取值范围:

不涉及。

be_agency_project_id

String

参数解释:

被委托方项目ID,实际为配置转储的项目ID。

取值范围:

不涉及。

表12 TransferDetail

参数

参数类型

描述

obs_period

Integer

参数解释:

转储至OBS的时间。当转储对象为OBS时,返回该参数。

取值范围:

1、2、3、5、6、2、30

obs_period_unit

String

参数解释:

转储至OBS的时间单位。当转储对象为OBS时,返回该参数。

取值范围:

  • min

  • hour

obs_bucket_name

String

参数解释:

转储至OBS的日志桶名称。当转储对象为OBS时,返回该参数。

取值范围:

不涉及。

obs_encrypted_id

String

参数解释:

转储至OBS的KMS密钥ID。当转储对象为OBS且日志桶加密时,返回该参数。

取值范围:

不涉及。

obs_dir_pre_fix_name

String

参数解释:

转储至OBS的自定义转储路径。当转储对象为OBS时,返回该参数。将日志转储至自定义路径中,用于区分不同日志流之间的转储日志文件。

取值范围:

不涉及。

obs_prefix_name

String

参数解释:

转储至OBS桶中的日志文件前缀。当转储对象为OBS时,返回该参数。

取值范围:

不涉及。

obs_time_zone

String

参数解释:

OBS转储时区,请参考OBS转储时区表。。

取值范围:

不涉及。

obs_time_zone_id

String

参数解释:

OBS转储时区ID,请参考OBS转储时区表

取值范围:

不涉及。

dis_id

String

参数解释:

日志转储至DIS转储通道ID。当转储至DIS时,返回该参数。

取值范围:

不涉及。

dis_name

String

参数解释:

日志转储至DIS转储通道名称。当转储至DIS时,返回该参数。

取值范围:

不涉及。

kafka_id

String

参数解释:

日志转储至DMS的kafka ID。当转储至DMS时,返回该参数。

创建DMS转储前,需要使用kafka ID以及kafka Topic进行实例注册。请参考注册DMSkafka实例

取值范围:

不涉及。

kafka_topic

String

参数解释:

日志转储至DMS的kafka topic。当转储至DMS时,返回该参数。

创建DMS转储前,需要使用kafka ID以及kafka Topic进行实例注册。请参考注册DMSkafka实例

取值范围:

不涉及。

obs_transfer_path

String

参数解释:

日志转储至OBS的路径,即OBS日志桶中的路径。

取值范围:

不涉及。

obs_encrypted_enable

Boolean

参数解释:

OBS是否开启加密。

取值范围:

  • true

  • false

tags

Array of strings

参数解释:

开启tag投递。

取值范围:

不涉及。

状态码:400

表13 响应Body参数

参数

参数类型

描述

error_code

String

参数解释:

错误码,请参见:错误码

取值范围:

不涉及。

error_msg

String

参数解释:

调用失败响应信息描述。

取值范围:

不涉及。

状态码:500

表14 响应Body参数

参数

参数类型

描述

error_code

String

参数解释:

错误码,请参见:错误码

取值范围:

不涉及。

error_msg

String

参数解释:

调用失败响应信息描述。

取值范围:

不涉及。

请求示例

  • 创建OBS转储

    POST https://{endpoint}/v2/{project_id}/transfers
    
    {
      "log_group_id" : "8ba9e43f-be60-4d8c-9015-xxxxxxxxxxxx",
      "log_streams" : [ {
        "log_stream_id" : "c776e1a7-8548-430a-afe5-xxxxxxxxxxxx"
      } ],
      "log_transfer_info" : {
        "log_transfer_type" : "OBS",
        "log_transfer_mode" : "xxxxx",
        "log_storage_format" : "XXX",
        "log_transfer_status" : "XXXXX",
        "log_agency_transfer" : {
          "agency_domain_id" : "1d26cc8c86a840e28a4f8d0d078xxxxx",
          "agency_domain_name" : "paas_apm_z004xxxxx_xx",
          "agency_name" : "test20210325",
          "agency_project_id" : "2a473356cca5487f8373be891bfxxxxx",
          "be_agency_domain_id" : "1d26cc8c86a840e28a4f8d0d078xxxxx",
          "be_agency_project_id" : "2a473356cca5487f8373be891bfxxxxx"
        },
        "log_transfer_detail" : {
          "obs_period" : 2,
          "obs_period_unit" : "min",
          "obs_bucket_name" : "xxxxx",
          "obs_encrypted_id" : "1bd90032-1424-481f-8558-ba49854xxxxx",
          "obs_dir_pre_fix_name" : "/xx",
          "obs_prefix_name" : "xxxxx",
          "obs_time_zone" : "UTC+01:00",
          "obs_time_zone_id" : "Africa/Lagos"
        }
      }
    }
  • 创建DIS转储

    POST https://{endpoint}/v2/{project_id}/transfers
    
    {
      "log_group_id" : "8ba9e43f-be60-4d8c-9015-xxxxxxxxxxxx",
      "log_streams" : [ {
        "log_stream_id" : "c776e1a7-8548-430a-afe5-xxxxxxxxxxxx"
      } ],
      "log_transfer_info" : {
        "log_transfer_type" : "DIS",
        "log_transfer_mode" : "xxxxx",
        "log_storage_format" : "XXX",
        "log_transfer_status" : "XXXXX",
        "log_agency_transfer" : {
          "agency_domain_id" : "1d26cc8c86a840e28a4f8d0d078xxxxx",
          "agency_domain_name" : "paas_apm_z004xxxxx_xx",
          "agency_name" : "test20210325",
          "agency_project_id" : "2a473356cca5487f8373be891bfxxxxx",
          "be_agency_domain_id" : "1d26cc8c86a840e28a4f8d0d078xxxxx",
          "be_agency_project_id" : "2a473356cca5487f8373be891bfxxxxx"
        },
        "log_transfer_detail" : {
          "dis_id" : "i1y8vfMTvf4LQzxxxxx",
          "dis_name" : "xxxxx"
        }
      }
    }

响应示例

状态码:200

创建转储请求响应成功。

  • 当创建OBS转储时,会返回如下参数

    {
      "log_group_id" : "9a7e2183-2d6d-4732-9a9b-e897fd4e49e0",
      "log_group_name" : "lts-group-kafka",
      "log_streams" : [ {
        "log_stream_id" : "839dac89-35af-4db2-ab4a-a7dda0d0d3f8",
        "log_stream_name" : "lts-topic-kafka"
      } ],
      "log_transfer_id" : "ddced522-233a-4181-a5fc-7b458c819afc",
      "log_transfer_info" : {
        "log_create_time" : 1634802241847,
        "log_storage_format" : "JSON",
        "log_agency_transfer" : {
          "agency_domain_id" : "1d26cc8c86a840e28a4f8d0d078xxxxx",
          "agency_domain_name" : "paas_apm_z004xxxxx_xx",
          "agency_name" : "test20210325",
          "agency_project_id" : "2a473356cca5487f8373be891bfxxxxx",
          "be_agency_domain_id" : "1d26cc8c86a840e28a4f8d0d078xxxxx",
          "be_agency_project_id" : "2a473356cca5487f8373be891bfxxxxx"
        },
        "log_transfer_detail" : {
          "obs_period" : 2,
          "obs_prefix_name" : "",
          "obs_period_unit" : "min",
          "obs_transfer_path" : "/0002/LogTanks/cn-north-7/",
          "obs_bucket_name" : "0002",
          "obs_encrypted_enable" : false,
          "obs_dir_pre_fix_name" : "",
          "obs_time_zone" : "UTC+01:00",
          "obs_time_zone_id" : "Africa/Lagos",
          "tags" : [ ]
        },
        "log_transfer_mode" : "cycle",
        "log_transfer_status" : "ENABLE",
        "log_transfer_type" : "OBS"
      }
    }
  • 当创建DIS转储时,会返回如下参数

    {
      "log_group_id" : "9a7e2183-2d6d-4732-9a9b-e897fd4e49e0",
      "log_group_name" : "lts-group-kafka",
      "log_streams" : [ {
        "log_stream_id" : "839dac89-35af-4db2-ab4a-a7dda0d0d3f8",
        "log_stream_name" : "lts-topic-kafka"
      } ],
      "log_transfer_id" : "ddced522-233a-4181-a5fc-7b458c819afc",
      "log_transfer_info" : {
        "log_create_time" : 1634802241847,
        "log_storage_format" : "JSON",
        "log_agency_transfer" : {
          "agency_domain_id" : "1d26cc8c86a840e28a4f8d0d078xxxxx",
          "agency_domain_name" : "paas_apm_z004xxxxx_xx",
          "agency_name" : "test20210325",
          "agency_project_id" : "2a473356cca5487f8373be891bfxxxxx",
          "be_agency_domain_id" : "1d26cc8c86a840e28a4f8d0d078xxxxx",
          "be_agency_project_id" : "2a473356cca5487f8373be891bfxxxxx"
        },
        "log_transfer_detail" : {
          "dis_id" : "xxxxx",
          "dis_name" : "xxxxxx",
          "tags" : [ ]
        },
        "log_transfer_mode" : "cycle",
        "log_transfer_status" : "ENABLE",
        "log_transfer_type" : "OBS"
      }
    }
  • 当创建DMS转储时,会返回如下参数

    {
      "log_group_id" : "9a7e2183-2d6d-4732-9a9b-e897fd4e49e0",
      "log_group_name" : "lts-group-kafka",
      "log_streams" : [ {
        "log_stream_id" : "839dac89-35af-4db2-ab4a-a7dda0d0d3f8",
        "log_stream_name" : "lts-topic-kafka"
      } ],
      "log_transfer_id" : "ddced522-233a-4181-a5fc-7b458c819afc",
      "log_transfer_info" : {
        "log_create_time" : 1634802241847,
        "log_storage_format" : "JSON",
        "log_agency_transfer" : {
          "agency_domain_id" : "1d26cc8c86a840e28a4f8d0d078xxxxx",
          "agency_domain_name" : "paas_apm_z004xxxxx_xx",
          "agency_name" : "test20210325",
          "agency_project_id" : "2a473356cca5487f8373be891bfxxxxx",
          "be_agency_domain_id" : "1d26cc8c86a840e28a4f8d0d078xxxxx",
          "be_agency_project_id" : "2a473356cca5487f8373be891bfxxxxx"
        },
        "log_transfer_detail" : {
          "kafka_id" : "xxxxxx",
          "kafka_topic" : "xxxxx",
          "tags" : [ ]
        },
        "log_transfer_mode" : "cycle",
        "log_transfer_status" : "ENABLE",
        "log_transfer_type" : "OBS"
      }
    }

状态码:400

非法请求 建议根据error_msg直接修改该请求。

{
  "error_code" : "LTS.0207",
  "error_msg" : "The log stream is associated by transfer"
}

状态码:500

表明服务端能被请求访问到,但是服务内部出错。

{
  "error_code" : "LTS.0207",
  "error_msg" : "The log stream is associated by transfer"
}

SDK代码示例

SDK代码示例如下。

  • 创建OBS转储

     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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    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.lts.v2.region.LtsRegion;
    import com.huaweicloud.sdk.lts.v2.*;
    import com.huaweicloud.sdk.lts.v2.model.*;
    
    import java.util.List;
    import java.util.ArrayList;
    
    public class CreateTransferSolution {
    
        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);
    
            LtsClient client = LtsClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(LtsRegion.valueOf("<YOUR REGION>"))
                    .build();
            CreateTransferRequest request = new CreateTransferRequest();
            CreateTransferRequestBody body = new CreateTransferRequestBody();
            TransferDetail logTransferDetailLogTransferInfo = new TransferDetail();
            logTransferDetailLogTransferInfo.withObsPeriod(TransferDetail.ObsPeriodEnum.NUMBER_2)
                .withObsEncryptedId("1bd90032-1424-481f-8558-ba49854xxxxx")
                .withObsPrefixName("xxxxx")
                .withObsPeriodUnit("min")
                .withObsBucketName("xxxxx")
                .withObsDirPreFixName("/xx")
                .withObsTimeZone("UTC+01:00")
                .withObsTimeZoneId("Africa/Lagos");
            CreateTransferRequestBodyLogTransferInfoLogAgencyTransfer logAgencyTransferLogTransferInfo = new CreateTransferRequestBodyLogTransferInfoLogAgencyTransfer();
            logAgencyTransferLogTransferInfo.withAgencyDomainId("1d26cc8c86a840e28a4f8d0d078xxxxx")
                .withAgencyDomainName("paas_apm_z004xxxxx_xx")
                .withAgencyName("test20210325")
                .withAgencyProjectId("2a473356cca5487f8373be891bfxxxxx")
                .withBeAgencyDomainId("1d26cc8c86a840e28a4f8d0d078xxxxx")
                .withBeAgencyProjectId("2a473356cca5487f8373be891bfxxxxx");
            CreateTransferRequestBodyLogTransferInfo logTransferInfobody = new CreateTransferRequestBodyLogTransferInfo();
            logTransferInfobody.withLogTransferType("OBS")
                .withLogTransferMode(CreateTransferRequestBodyLogTransferInfo.LogTransferModeEnum.fromValue("xxxxx"))
                .withLogStorageFormat(CreateTransferRequestBodyLogTransferInfo.LogStorageFormatEnum.fromValue("XXX"))
                .withLogTransferStatus(CreateTransferRequestBodyLogTransferInfo.LogTransferStatusEnum.fromValue("XXXXX"))
                .withLogAgencyTransfer(logAgencyTransferLogTransferInfo)
                .withLogTransferDetail(logTransferDetailLogTransferInfo);
            List<CreateTransferRequestBodyLogStreams> listbodyLogStreams = new ArrayList<>();
            listbodyLogStreams.add(
                new CreateTransferRequestBodyLogStreams()
                    .withLogStreamId("c776e1a7-8548-430a-afe5-xxxxxxxxxxxx")
            );
            body.withLogTransferInfo(logTransferInfobody);
            body.withLogStreams(listbodyLogStreams);
            body.withLogGroupId("8ba9e43f-be60-4d8c-9015-xxxxxxxxxxxx");
            request.withBody(body);
            try {
                CreateTransferResponse response = client.createTransfer(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());
            }
        }
    }
    
  • 创建DIS转储

     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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    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.lts.v2.region.LtsRegion;
    import com.huaweicloud.sdk.lts.v2.*;
    import com.huaweicloud.sdk.lts.v2.model.*;
    
    import java.util.List;
    import java.util.ArrayList;
    
    public class CreateTransferSolution {
    
        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);
    
            LtsClient client = LtsClient.newBuilder()
                    .withCredential(auth)
                    .withRegion(LtsRegion.valueOf("<YOUR REGION>"))
                    .build();
            CreateTransferRequest request = new CreateTransferRequest();
            CreateTransferRequestBody body = new CreateTransferRequestBody();
            TransferDetail logTransferDetailLogTransferInfo = new TransferDetail();
            logTransferDetailLogTransferInfo.withDisId("i1y8vfMTvf4LQzxxxxx")
                .withDisName("xxxxx");
            CreateTransferRequestBodyLogTransferInfoLogAgencyTransfer logAgencyTransferLogTransferInfo = new CreateTransferRequestBodyLogTransferInfoLogAgencyTransfer();
            logAgencyTransferLogTransferInfo.withAgencyDomainId("1d26cc8c86a840e28a4f8d0d078xxxxx")
                .withAgencyDomainName("paas_apm_z004xxxxx_xx")
                .withAgencyName("test20210325")
                .withAgencyProjectId("2a473356cca5487f8373be891bfxxxxx")
                .withBeAgencyDomainId("1d26cc8c86a840e28a4f8d0d078xxxxx")
                .withBeAgencyProjectId("2a473356cca5487f8373be891bfxxxxx");
            CreateTransferRequestBodyLogTransferInfo logTransferInfobody = new CreateTransferRequestBodyLogTransferInfo();
            logTransferInfobody.withLogTransferType("DIS")
                .withLogTransferMode(CreateTransferRequestBodyLogTransferInfo.LogTransferModeEnum.fromValue("xxxxx"))
                .withLogStorageFormat(CreateTransferRequestBodyLogTransferInfo.LogStorageFormatEnum.fromValue("XXX"))
                .withLogTransferStatus(CreateTransferRequestBodyLogTransferInfo.LogTransferStatusEnum.fromValue("XXXXX"))
                .withLogAgencyTransfer(logAgencyTransferLogTransferInfo)
                .withLogTransferDetail(logTransferDetailLogTransferInfo);
            List<CreateTransferRequestBodyLogStreams> listbodyLogStreams = new ArrayList<>();
            listbodyLogStreams.add(
                new CreateTransferRequestBodyLogStreams()
                    .withLogStreamId("c776e1a7-8548-430a-afe5-xxxxxxxxxxxx")
            );
            body.withLogTransferInfo(logTransferInfobody);
            body.withLogStreams(listbodyLogStreams);
            body.withLogGroupId("8ba9e43f-be60-4d8c-9015-xxxxxxxxxxxx");
            request.withBody(body);
            try {
                CreateTransferResponse response = client.createTransfer(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());
            }
        }
    }
    
  • 创建OBS转储

     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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    # coding: utf-8
    
    import os
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdklts.v2.region.lts_region import LtsRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdklts.v2 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 = LtsClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(LtsRegion.value_of("<YOUR REGION>")) \
            .build()
    
        try:
            request = CreateTransferRequest()
            logTransferDetailLogTransferInfo = TransferDetail(
                obs_period=2,
                obs_encrypted_id="1bd90032-1424-481f-8558-ba49854xxxxx",
                obs_prefix_name="xxxxx",
                obs_period_unit="min",
                obs_bucket_name="xxxxx",
                obs_dir_pre_fix_name="/xx",
                obs_time_zone="UTC+01:00",
                obs_time_zone_id="Africa/Lagos"
            )
            logAgencyTransferLogTransferInfo = CreateTransferRequestBodyLogTransferInfoLogAgencyTransfer(
                agency_domain_id="1d26cc8c86a840e28a4f8d0d078xxxxx",
                agency_domain_name="paas_apm_z004xxxxx_xx",
                agency_name="test20210325",
                agency_project_id="2a473356cca5487f8373be891bfxxxxx",
                be_agency_domain_id="1d26cc8c86a840e28a4f8d0d078xxxxx",
                be_agency_project_id="2a473356cca5487f8373be891bfxxxxx"
            )
            logTransferInfobody = CreateTransferRequestBodyLogTransferInfo(
                log_transfer_type="OBS",
                log_transfer_mode="xxxxx",
                log_storage_format="XXX",
                log_transfer_status="XXXXX",
                log_agency_transfer=logAgencyTransferLogTransferInfo,
                log_transfer_detail=logTransferDetailLogTransferInfo
            )
            listLogStreamsbody = [
                CreateTransferRequestBodyLogStreams(
                    log_stream_id="c776e1a7-8548-430a-afe5-xxxxxxxxxxxx"
                )
            ]
            request.body = CreateTransferRequestBody(
                log_transfer_info=logTransferInfobody,
                log_streams=listLogStreamsbody,
                log_group_id="8ba9e43f-be60-4d8c-9015-xxxxxxxxxxxx"
            )
            response = client.create_transfer(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
    
  • 创建DIS转储

     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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    # coding: utf-8
    
    import os
    from huaweicloudsdkcore.auth.credentials import BasicCredentials
    from huaweicloudsdklts.v2.region.lts_region import LtsRegion
    from huaweicloudsdkcore.exceptions import exceptions
    from huaweicloudsdklts.v2 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 = LtsClient.new_builder() \
            .with_credentials(credentials) \
            .with_region(LtsRegion.value_of("<YOUR REGION>")) \
            .build()
    
        try:
            request = CreateTransferRequest()
            logTransferDetailLogTransferInfo = TransferDetail(
                dis_id="i1y8vfMTvf4LQzxxxxx",
                dis_name="xxxxx"
            )
            logAgencyTransferLogTransferInfo = CreateTransferRequestBodyLogTransferInfoLogAgencyTransfer(
                agency_domain_id="1d26cc8c86a840e28a4f8d0d078xxxxx",
                agency_domain_name="paas_apm_z004xxxxx_xx",
                agency_name="test20210325",
                agency_project_id="2a473356cca5487f8373be891bfxxxxx",
                be_agency_domain_id="1d26cc8c86a840e28a4f8d0d078xxxxx",
                be_agency_project_id="2a473356cca5487f8373be891bfxxxxx"
            )
            logTransferInfobody = CreateTransferRequestBodyLogTransferInfo(
                log_transfer_type="DIS",
                log_transfer_mode="xxxxx",
                log_storage_format="XXX",
                log_transfer_status="XXXXX",
                log_agency_transfer=logAgencyTransferLogTransferInfo,
                log_transfer_detail=logTransferDetailLogTransferInfo
            )
            listLogStreamsbody = [
                CreateTransferRequestBodyLogStreams(
                    log_stream_id="c776e1a7-8548-430a-afe5-xxxxxxxxxxxx"
                )
            ]
            request.body = CreateTransferRequestBody(
                log_transfer_info=logTransferInfobody,
                log_streams=listLogStreamsbody,
                log_group_id="8ba9e43f-be60-4d8c-9015-xxxxxxxxxxxx"
            )
            response = client.create_transfer(request)
            print(response)
        except exceptions.ClientRequestException as e:
            print(e.status_code)
            print(e.request_id)
            print(e.error_code)
            print(e.error_msg)
    
  • 创建OBS转储

     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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    package main
    
    import (
    	"fmt"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        lts "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/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 := lts.NewLtsClient(
            lts.LtsClientBuilder().
                WithRegion(region.ValueOf("<YOUR REGION>")).
                WithCredential(auth).
                Build())
    
        request := &model.CreateTransferRequest{}
    	obsEncryptedIdLogTransferDetail:= "1bd90032-1424-481f-8558-ba49854xxxxx"
    	obsPrefixNameLogTransferDetail:= "xxxxx"
    	obsDirPreFixNameLogTransferDetail:= "/xx"
    	obsTimeZoneLogTransferDetail:= "UTC+01:00"
    	obsTimeZoneIdLogTransferDetail:= "Africa/Lagos"
    	logTransferDetailLogTransferInfo := &model.TransferDetail{
    		ObsPeriod: model.GetTransferDetailObsPeriodEnum().E_2,
    		ObsEncryptedId: &obsEncryptedIdLogTransferDetail,
    		ObsPrefixName: &obsPrefixNameLogTransferDetail,
    		ObsPeriodUnit: "min",
    		ObsBucketName: "xxxxx",
    		ObsDirPreFixName: &obsDirPreFixNameLogTransferDetail,
    		ObsTimeZone: &obsTimeZoneLogTransferDetail,
    		ObsTimeZoneId: &obsTimeZoneIdLogTransferDetail,
    	}
    	logAgencyTransferLogTransferInfo := &model.CreateTransferRequestBodyLogTransferInfoLogAgencyTransfer{
    		AgencyDomainId: "1d26cc8c86a840e28a4f8d0d078xxxxx",
    		AgencyDomainName: "paas_apm_z004xxxxx_xx",
    		AgencyName: "test20210325",
    		AgencyProjectId: "2a473356cca5487f8373be891bfxxxxx",
    		BeAgencyDomainId: "1d26cc8c86a840e28a4f8d0d078xxxxx",
    		BeAgencyProjectId: "2a473356cca5487f8373be891bfxxxxx",
    	}
    	logTransferInfobody := &model.CreateTransferRequestBodyLogTransferInfo{
    		LogTransferType: "OBS",
    		LogTransferMode: model.GetCreateTransferRequestBodyLogTransferInfoLogTransferModeEnum().XXXXX,
    		LogStorageFormat: model.GetCreateTransferRequestBodyLogTransferInfoLogStorageFormatEnum().XXX,
    		LogTransferStatus: model.GetCreateTransferRequestBodyLogTransferInfoLogTransferStatusEnum().XXXXX,
    		LogAgencyTransfer: logAgencyTransferLogTransferInfo,
    		LogTransferDetail: logTransferDetailLogTransferInfo,
    	}
    	var listLogStreamsbody = []model.CreateTransferRequestBodyLogStreams{
            {
                LogStreamId: "c776e1a7-8548-430a-afe5-xxxxxxxxxxxx",
            },
        }
    	request.Body = &model.CreateTransferRequestBody{
    		LogTransferInfo: logTransferInfobody,
    		LogStreams: listLogStreamsbody,
    		LogGroupId: "8ba9e43f-be60-4d8c-9015-xxxxxxxxxxxx",
    	}
    	response, err := client.CreateTransfer(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    
  • 创建DIS转储

     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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    package main
    
    import (
    	"fmt"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
        lts "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2"
    	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/model"
        region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/lts/v2/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 := lts.NewLtsClient(
            lts.LtsClientBuilder().
                WithRegion(region.ValueOf("<YOUR REGION>")).
                WithCredential(auth).
                Build())
    
        request := &model.CreateTransferRequest{}
    	disIdLogTransferDetail:= "i1y8vfMTvf4LQzxxxxx"
    	disNameLogTransferDetail:= "xxxxx"
    	logTransferDetailLogTransferInfo := &model.TransferDetail{
    		DisId: &disIdLogTransferDetail,
    		DisName: &disNameLogTransferDetail,
    	}
    	logAgencyTransferLogTransferInfo := &model.CreateTransferRequestBodyLogTransferInfoLogAgencyTransfer{
    		AgencyDomainId: "1d26cc8c86a840e28a4f8d0d078xxxxx",
    		AgencyDomainName: "paas_apm_z004xxxxx_xx",
    		AgencyName: "test20210325",
    		AgencyProjectId: "2a473356cca5487f8373be891bfxxxxx",
    		BeAgencyDomainId: "1d26cc8c86a840e28a4f8d0d078xxxxx",
    		BeAgencyProjectId: "2a473356cca5487f8373be891bfxxxxx",
    	}
    	logTransferInfobody := &model.CreateTransferRequestBodyLogTransferInfo{
    		LogTransferType: "DIS",
    		LogTransferMode: model.GetCreateTransferRequestBodyLogTransferInfoLogTransferModeEnum().XXXXX,
    		LogStorageFormat: model.GetCreateTransferRequestBodyLogTransferInfoLogStorageFormatEnum().XXX,
    		LogTransferStatus: model.GetCreateTransferRequestBodyLogTransferInfoLogTransferStatusEnum().XXXXX,
    		LogAgencyTransfer: logAgencyTransferLogTransferInfo,
    		LogTransferDetail: logTransferDetailLogTransferInfo,
    	}
    	var listLogStreamsbody = []model.CreateTransferRequestBodyLogStreams{
            {
                LogStreamId: "c776e1a7-8548-430a-afe5-xxxxxxxxxxxx",
            },
        }
    	request.Body = &model.CreateTransferRequestBody{
    		LogTransferInfo: logTransferInfobody,
    		LogStreams: listLogStreamsbody,
    		LogGroupId: "8ba9e43f-be60-4d8c-9015-xxxxxxxxxxxx",
    	}
    	response, err := client.CreateTransfer(request)
    	if err == nil {
            fmt.Printf("%+v\n", response)
        } else {
            fmt.Println(err)
        }
    }
    

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

状态码

状态码

描述

200

创建转储请求响应成功。

400

非法请求 建议根据error_msg直接修改该请求。

500

表明服务端能被请求访问到,但是服务内部出错。

错误码

请参见错误码

相关文档