内容分发网络

当前版本:

| 产品详情
  • 配额中心
    • 查询用户配额ShowQuota
  • 日志管理
    • 日志查询ShowLogs
  • 刷新预热
    • 创建预热缓存任务CreatePreheatingTasks
    • 创建刷新缓存任务CreateRefreshTasks
    • 查询刷新预热任务详情ShowHistoryTaskDetails
    • 查询刷新预热任务ShowHistoryTasks
    • 查询刷新预热URL记录ShowUrlTaskInfo
  • 统计分析
    • 按区域运营商查询域名统计数据ShowDomainLocationStats
    • 查询域名统计数据ShowDomainStats
    • 查询TOP100 URL明细ShowTopUrl
  • 域名操作
    • 创建加速域名CreateDomain
    • 删除加速域名DeleteDomain
    • 停用加速域名DisableDomain
    • 启用加速域名EnableDomain
    • 查询加速域名ListDomains
    • 查询加速域名详情ShowDomainDetail
  • 域名配置
    • 删除资源标签配置接口BatchDeleteTags
    • 创建资源标签配置接口CreateTags
    • 查询IP黑白名单ShowBlackWhiteList
    • 查询缓存规则ShowCacheRules
    • 查询所有绑定HTTPS证书的域名信息ShowCertificatesHttpsInfo
    • 查询域名配置接口ShowDomainFullConfig
    • 查询HTTPS配置ShowHttpInfo
    • 查询IP归属信息ShowIpInfo
    • 查询回源HOSTShowOriginHost
    • 查询Referer过滤规则ShowRefer
    • 查询响应头配置ShowResponseHeader
    • 查询资源标签列表配置接口ShowTags
    • 设置IP黑白名单UpdateBlackWhiteList
    • 设置缓存规则UpdateCacheRules
    • 修改域名全量配置接口UpdateDomainFullConfig
    • 一个证书批量设置多个域名UpdateDomainMultiCertificates
    • 修改源站信息。UpdateDomainOrigin
    • 开启/关闭回源跟随UpdateFollow302Switch
    • 配置HTTPSUpdateHttpsInfo
    • 修改回源HOST。UpdateOriginHost
    • 修改私有桶开启关闭状态UpdatePrivateBucketAccess
    • 开启/关闭Range回源UpdateRangeSwitch
    • 设置Referer过滤规则UpdateRefer
    • 新增/修改响应头配置UpdateResponseHeader

CreateDomain (Abandoned)

创建加速域名 (已经废弃)

POST
https://cdn.myhuaweicloud.com/v1.0/cdn/domains
高级设置
只看必填项
填写默认值
密文显示特定参数
*
Region
Headers
*
Authorization
Body
*{
*
domain
: {
*
domain_name
:
*
business_type
:
*
sources
: [
* {
*
domain_id
:
*
origin_type
:
*
ip_or_domain
:
*
active_standby
:
*
enable_obs_web_hosting
:
*}
+Add
*]
*
service_area
:
*
enterprise_project_id
:
*}
}

功能介绍

创建加速域名。

调用方法

请参见如何调用API

URI

POST /v1.0/cdn/domains

请求参数

表1 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

用户Token。

通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。

表2 请求Body参数

参数

是否必选

参数类型

描述

domain

DomainBody object

创建域名Body

表3 DomainBody

参数

是否必选

参数类型

描述

domain_name

String

加速域名。( 由字母(A-Z,a-z,大小写等价)、数字(0-9)和连接符(-)组成,各级域名之间用(.)连接,域名长度不超过75个字符。连接符(-)不能作为域名的开头或结尾字符。)

business_type

String

域名业务类型,若为web,则表示类型为网页加速;若为download,则表示业务类型为文件下载加速;若为video,则表示业务类型为点播加速;若为wholeSite,则表示业务类型为全站加速。

sources

Array of SourcesRequestBody objects

源站配置。

service_area

String

域名服务范围,若为mainland_china,则表示服务范围为中国大陆;若为outside_mainland_china,则表示服务范围为中国大陆境外;若为global,则表示服务范围为全球。

enterprise_project_id

String

当用户开启企业项目功能时,该参数生效,表示添加加速域名到该企业项目。注意:当使用子账号调用接口时,该参数必传。

您可以通过调用企业项目管理服务(EPS)的查询企业项目列表接口(ListEnterpriseProject)查询企业项目id。

表4 SourcesRequestBody

参数

是否必选

参数类型

描述

domain_id

String

加速域名id。

ip_or_domain

String

源站IP(非内网IP)或者域名。

origin_type

String

源站类型取值:ipaddr:源站IP、 domain:源站域名、obs_bucket:OBS桶域名。

obs_bucket_type

String

OBS桶类型,源站类型是“OBS桶域名”时需要传该参数,不传默认为“public”。

  • private: 私有桶(除桶ACL授权外的其他用户无桶的访问权限)。

  • public: 公有桶(任何用户都可以对桶内对象进行读操作)。

active_standby

Integer

主备状态,1代表主源站,0代表备源站。

enable_obs_web_hosting

Integer

是否开启OBS静态网站托管(0表示关闭,1表示则为开启),源站类型为obs_bucket时传递。

http_port

Integer

HTTP端口,默认80,端口取值取值范围1-65535。

https_port

Integer

HTTPS端口,默认443,端口取值取值范围1-65535。

响应参数

状态码:200

表5 响应Body参数

参数

参数类型

描述

domain

CreateDomainResponseBodyContent object

创建域名返回信息。

表6 CreateDomainResponseBodyContent

参数

参数类型

描述

id

String

加速域名ID。

domain_name

String

加速域名。

business_type

String

域名业务类型:

  • web:网站加速;

  • download:文件下载加速;

  • video:点播加速;

  • wholeSite:全站加速。

service_area

String

域名服务范围,若为mainland_china,则表示服务范围为中国大陆;若为outside_mainland_china,则表示服务范围为中国大陆境外;若为global,则表示服务范围为全球。

user_domain_id

String

域名所属用户的domain_id。

domain_status

String

加速域名状态。取值意义:

  • online表示“已开启”

  • offline表示“已停用”

  • configuring表示“配置中”

  • configure_failed表示“配置失败”

  • checking表示“审核中”

  • check_failed表示“审核未通过”

  • deleting表示“删除中”。

cname

String

加速域名对应的CNAME。

sources

Array of Sources objects

源站信息。

domain_origin_host

DomainOriginHost object

域名回源HOST配置。

https_status

Integer

是否开启HTTPS加速。

create_time

Long

域名创建时间,相对于UTC 1970-01-01到当前时间相隔的毫秒数。

modify_time

Long

域名修改时间,相对于UTC 1970-01-01到当前时间相隔的毫秒数。

disabled

Integer

封禁状态(0代表未禁用;1代表禁用)。

locked

Integer

锁定状态(0代表未锁定;1代表锁定)。

range_status

String

range状态,off:关闭,on:开启。

follow_status

String

follow302状态,off:关闭,on:开启。

origin_status

String

是否暂停源站回源(off代表关闭 on代表开启)。

auto_refresh_preheat

Integer

自动刷新预热(0代表关闭;1代表打开)。

表7 Sources

参数

参数类型

描述

domain_id

String

加速域名id。

ip_or_domain

String

源站IP(非内网IP)或者域名。

origin_type

String

源站类型取值:ipaddr:源站IP、 domain:源站域名、obs_bucket:OBS桶域名。

obs_bucket_type

String

OBS桶类型。

  • private: 私有桶(除桶ACL授权外的其他用户无桶的访问权限)。

  • public: 公有桶(任何用户都可以对桶内对象进行读操作)。

active_standby

Integer

主备状态,1代表主源站,0代表备源站。

enable_obs_web_hosting

Integer

是否开启OBS静态网站托管(0表示关闭,1表示则为开启),源站类型为obs_bucket时传递。

表8 DomainOriginHost

参数

参数类型

描述

domain_id

String

域名ID。

origin_host_type

String

回源host的类型,accelerate:选择加速域名作为回源host域名, customize:使用自定义的域名作为回源host域名。

customize_domain

String

回源host域名。返回加速域名主源站设置的HOST域名,如果加速域名有多个主源站且对应多个回源HOST,则返回源站配置中的第一个主源站对应的HOST域名。

请求示例

POST https://cdn.myhuaweicloud.com/v1.0/cdn/domains

{
  "domain" : {
    "domain_name" : "example1.example2.example3.com",
    "business_type" : "web",
    "sources" : [ {
      "ip_or_domain" : "0.0.0.0",
      "origin_type" : "ipaddr",
      "active_standby" : 1
    } ],
    "service_area" : "mainland_china",
    "enterprise_project_id" : "0"
  }
}

响应示例

状态码:200

OK

{
  "domain" : {
    "sources" : [ {
      "domain_id" : "ff80*************************07b",
      "ip_or_domain" : "0.0.0.0",
      "origin_type" : "ipaddr",
      "active_standby" : 1
    } ],
    "id" : "ff80*************************07b",
    "user_domain_id" : "38***********************5024dcb",
    "domain_name" : "example11.example2.example3.com",
    "business_type" : "web",
    "service_area" : "mainland_china",
    "cname" : "example1.example2.example3.com.c.example4.com",
    "domain_status" : "configuring",
    "https_status" : 0,
    "create_time" : 1513152634467,
    "modify_time" : 1513152634467,
    "domain_origin_host" : {
      "domain_id" : "ff80*************************07b",
      "origin_host_type" : "customize",
      "customize_domain" : "example5.example6.com"
    },
    "disabled" : 0,
    "locked" : 0,
    "range_status" : "off",
    "follow_status" : "off",
    "origin_status" : "on",
    "auto_refresh_preheat" : 0
  }
}

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
52
53
54
55
56
57
58
59
60
61
62
63
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.GlobalCredentials;
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.cdn.v2.region.CdnRegion;
import com.huaweicloud.sdk.cdn.v2.*;
import com.huaweicloud.sdk.cdn.v2.model.*;

import java.util.List;
import java.util.ArrayList;

public class CreateDomainSolution {

    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");

        ICredential auth = new GlobalCredentials()
                .withAk(ak)
                .withSk(sk);

        CdnClient client = CdnClient.newBuilder()
                .withCredential(auth)
                .withRegion(CdnRegion.valueOf("<YOUR REGION>"))
                .build();
        CreateDomainRequest request = new CreateDomainRequest();
        CreateDomainRequestBody body = new CreateDomainRequestBody();
        List<SourcesRequestBody> listDomainSources = new ArrayList<>();
        listDomainSources.add(
            new SourcesRequestBody()
                .withIpOrDomain("0.0.0.0")
                .withOriginType(SourcesRequestBody.OriginTypeEnum.fromValue("ipaddr"))
                .withActiveStandby(1)
        );
        DomainBody domainbody = new DomainBody();
        domainbody.withDomainName("example1.example2.example3.com")
            .withBusinessType(DomainBody.BusinessTypeEnum.fromValue("web"))
            .withSources(listDomainSources)
            .withServiceArea(DomainBody.ServiceAreaEnum.fromValue("mainland_china"))
            .withEnterpriseProjectId("0");
        body.withDomain(domainbody);
        request.withBody(body);
        try {
            CreateDomainResponse response = client.createDomain(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
36
37
38
39
40
41
42
43
44
45
46
47
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import GlobalCredentials
from huaweicloudsdkcdn.v2.region.cdn_region import CdnRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkcdn.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"]

    credentials = GlobalCredentials(ak, sk)

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

    try:
        request = CreateDomainRequest()
        listSourcesDomain = [
            SourcesRequestBody(
                ip_or_domain="0.0.0.0",
                origin_type="ipaddr",
                active_standby=1
            )
        ]
        domainbody = DomainBody(
            domain_name="example1.example2.example3.com",
            business_type="web",
            sources=listSourcesDomain,
            service_area="mainland_china",
            enterprise_project_id="0"
        )
        request.body = CreateDomainRequestBody(
            domain=domainbody
        )
        response = client.create_domain(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
42
43
44
45
46
47
48
49
50
51
52
53
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/global"
    cdn "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cdn/v2"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cdn/v2/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/cdn/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")

    auth := global.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        Build()

    client := cdn.NewCdnClient(
        cdn.CdnClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.CreateDomainRequest{}
	var listSourcesDomain = []model.SourcesRequestBody{
        {
            IpOrDomain: "0.0.0.0",
            OriginType: model.GetSourcesRequestBodyOriginTypeEnum().IPADDR,
            ActiveStandby: int32(1),
        },
    }
	enterpriseProjectIdDomain:= "0"
	domainbody := &model.DomainBody{
		DomainName: "example1.example2.example3.com",
		BusinessType: model.GetDomainBodyBusinessTypeEnum().WEB,
		Sources: listSourcesDomain,
		ServiceArea: model.GetDomainBodyServiceAreaEnum().MAINLAND_CHINA,
		EnterpriseProjectId: &enterpriseProjectIdDomain,
	}
	request.Body = &model.CreateDomainRequestBody{
		Domain: domainbody,
	}
	response, err := client.CreateDomain(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

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

状态码

状态码

描述

200

OK

错误码

请参见错误码

变更历史
2023-08-03
创建加速域名
POST
   CreateDomain
v1
修改
变更参数

本文导读

功能介绍
调用方法
URI
请求参数
响应参数
请求示例
响应示例
SDK代码示例
状态码
错误码
变更历史