全部产品
Search
文档中心

对象存储 OSS:bucket-cname(自定义域名)

更新时间:Mar 13, 2024

您可以通过bucket-cname命令创建域名所有权验证所需的CnameToken以及管理Cname配置。

注意事项

  • 要创建CnameToken,您必须具有oss:CreateCnameToken权限;要获取CnameToken,您必须具有oss:GetCnameToken权限;要添加Cname配置,您必须具有oss:PutCname权限;要获取Cname配置,您必须具有oss:ListCname权限;要删除Cname配置,您必须具有oss:DeleteCname权限。具体操作,请参见为RAM用户授权自定义的权限策略

  • 本文各命令行示例均基于Linux 64位系统,其他系统请将命令开头的./ossutil64替换成对应的Binary名称。更多信息,请参见命令行工具ossutil命令参考

创建CnameToken

说明

仅ossutil1.7.13及以上版本支持创建CnameToken。

  • 命令格式

    ./ossutil64 bucket-cname --method put --item token oss://bucketname domainname

    参数说明如下:

    参数

    说明

    bucketname

    填写待绑定Cname配置的Bucket名称。

    domainname

    填写自定义域名。

  • 使用示例

    以下示例用于为examplebucket待绑定的自定义域名example.com创建CnameToken。

    ./ossutil64 bucket-cname --method put --item token oss://examplebucket example.com

    输出结果如下:

    <CnameToken>
     <Bucket>examplebucket</Bucket>
     <Cname>example.com</Cname>
     <Token>4db41c3ad0c4c4b690d4c17fb34e****</Token>
     <ExpireTime>Thu, 26 May 2022 19:14:12 GMT</ExpireTime>
    </CnameToken>
    
    0.270654(s) elapsed

    CnameToken创建完成后,您需要添加TXT记录。具体步骤,请参见验证域名所有权

查看CnameToken

  • 命令格式

    ./ossutil64 bucket-cname --method get --item token oss://bucketname  domainname local_xml_file
  • 使用示例

    • 以下示例用于查看CnameToken,并输出到屏幕。

      ./ossutil64 bucket-cname --method get --item token oss://examplebucket example.com

      输出结果如下:

      <CnameToken>
       <Bucket>examplebucket</Bucket>
       <Cname>example.com</Cname>
       <Token>fbf997e8a2d48cb2177ed25180ee****</Token>
       <ExpireTime>Thu, 26 May 2022 19:53:19 GMT</ExpireTime>
      </CnameToken>
      
      0.144356(s) elapsed
    • 以下示例用于查看CnameToken,并保存到本地文件。

      ./ossutil64 bucket-cname --method get --item token oss://examplebucket example.com local.xml

      本地文件内容如下:

      <CnameToken>
       <Bucket>examplebucket</Bucket>
       <Cname>example.com</Cname>
       <Token>fbf997e8a2d48cb2177ed25180ee****</Token>
       <ExpireTime>Thu, 26 May 2022 19:53:19 GMT</ExpireTime>
      </CnameToken>

添加Cname配置

重要

添加Cname配置之前,您需要先创建CnameToken。具体步骤,请参见创建CnameToken

  • 命令格式

    ./ossutil64 bucket-cname --method put oss://bucketname domainname
  • 使用示例

    以下示例用于为examplebucket添加Cname配置。

    ./ossutil64 bucket-cname --method put oss://examplebucket example.com

    以下输出结果表明已成功添加Cname配置。

    0.227834(s) elapsed

获取Cname配置

  • 命令格式

    ./ossutil64 bucket-cname --method get oss://bucketname local_xml_file
  • 使用示例

    • 以下示例用于获取examplebucket的Cname配置,并将配置结果直接输出屏幕。

      ./ossutil64 bucket-cname --method get oss://examplebucket

      以下输出结果表明已成功获取Cname配置。Cname配置显示examplebucket绑定了两个自定义域名,分别为example.com和example.org,且域名处于已启用(Enabled)状态等信息。

      <?xml version="1.0" encoding="UTF-8"?>
      <ListCnameResult>
        <Bucket>examplebucket</Bucket>
        <Owner>148562088256****</Owner>
        <Cname>
          <Domain>example.com</Domain>
          <LastModified>2021-08-26T07:25:12.000Z</LastModified>
          <Status>Enabled</Status>
          <IsPurgeCdnCache>true</IsPurgeCdnCache>
        </Cname>
        <Cname>
          <Domain>example.org</Domain>
          <LastModified>2021-08-26T07:25:26.000Z</LastModified>
          <Status>Enabled</Status>
          <IsPurgeCdnCache>true</IsPurgeCdnCache>
        </Cname>
      </ListCnameResult>
      
      0.164039(s) elapsed
    • 以下示例用于获取examplebucket的Cname配置,并将配置结果输出到本地文件。

      ./ossutil64 bucket-cname --method get oss://examplebucket local.xml

      有证书绑定的输出结果如下:

      <?xml version="1.0" encoding="UTF-8"?>
      <ListCnameResult>
        <Bucket>examplebucket</Bucket>
        <Owner>1506925210***</Owner>
        <Cname>
          <Domain>example.com</Domain>
          <LastModified>2023-02-27T10:38:13.000Z</LastModified>
          <Status>Enabled</Status>
          <IsPurgeCdnCache>false</IsPurgeCdnCache>
          <Certificate>
            <Type>CAS</Type>
            <CertId>927****-cn-hangzhou</CertId>
            <Status>Enabled</Status>
            <CreationDate>Mon, 27 Feb 2023 06:51:34 GMT</CreationDate>
            <Fingerprint>60:AA:C3:2C:D4:70:54:3D:02:DB:B5:AA:E7:0E:E2:B9:0B:5A:C8:CC</Fingerprint>
            <ValidStartDate>Feb 10 00:00:00 2023 GMT</ValidStartDate>
            <ValidEndDate>Feb 10 23:59:59 2024 GMT</ValidEndDate>
          </Certificate>
        </Cname>
      </ListCnameResult>

      无证书绑定的输出结果如下:

      <?xml version="1.0" encoding="UTF-8"?>
      <ListCnameResult>
        <Bucket>examplebucket</Bucket>
        <Owner>148562088256****</Owner>
        <Cname>
          <Domain>example.com</Domain>
          <LastModified>2021-08-26T07:25:12.000Z</LastModified>
          <Status>Enabled</Status>
          <IsPurgeCdnCache>true</IsPurgeCdnCache>
        </Cname>
        <Cname>
          <Domain>example.org</Domain>
          <LastModified>2021-08-26T07:25:26.000Z</LastModified>
          <Status>Enabled</Status>
          <IsPurgeCdnCache>true</IsPurgeCdnCache>
        </Cname>
      </ListCnameResult>

添加Cname域名并绑定域名证书

  • 命令格式

    ./ossutil64 bucket-cname --method put --item certificate oss://bucketname local_xml_file
  • 使用示例

    1. 设置本地配置文件。

      <?xml version="1.0" encoding="UTF-8"?>
      <BucketCnameConfiguration>
        <Cname>
          <Domain>example.com</Domain>
          <CertificateConfiguration>
            <CertId>493****-cn-hangzhou</CertId>
            <Certificate>-----BEGIN CERTIFICATE----- MIIDhDCCAmwCCQCFs8ixARsyrDANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC **** -----END CERTIFICATE-----</Certificate>
            <PrivateKey>-----BEGIN CERTIFICATE----- MIIDhDCCAmwCCQCFs8ixARsyrDANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMC **** -----END CERTIFICATE-----</PrivateKey>
            <PreviousCertId>493****-cn-hangzhou</PreviousCertId>
            <Force>true</Force>
          </CertificateConfiguration>
        </Cname>
      </BucketCnameConfiguration>
    2. 添加Cname域名并绑定域名证书。

      ./ossutil64 bucket-cname --method put --item certificate oss://examplebucket local.xml

解绑域名证书

  • 命令格式

    ./ossutil64 bucket-cname --method put --item certificate oss://bucketname local_xml_file
  • 使用示例

    1. 设置本地配置文件。

      <?xml version="1.0" encoding="UTF-8"?>
      <BucketCnameConfiguration>
        <Cname>
          <Domain>example.com</Domain>
          <CertificateConfiguration>
            <DeleteCertificate>True</DeleteCertificate>
          </CertificateConfiguration>
        </Cname>
      </BucketCnameConfiguration>
    2. 解绑域名证书。

      ./ossutil64 bucket-cname --method put --item certificate oss://examplebucket local.xml

删除Cname配置

  • 命令格式

    ./ossutil64 bucket-cname --method delete oss://bucketname domainname 
  • 使用示例

    以下示例用于删除examplebucket的Cname配置。

    ./ossutil64 bucket-cname --method delete oss://examplebucket example.com

    以下输出结果表明已成功删除Cname配置。

    0.227389(s) elapsed

通用选项

当您需要通过命令行工具ossutil切换至另一个地域的Bucket时,可以通过-e选项指定该Bucket所属的Endpoint。当您需要通过命令行工具ossutil切换至另一个阿里云账号下的Bucket时,可以通过-i选项指定该账号的AccessKey ID,并通过-k选项指定该账号的AccessKey Secret。

例如,您需要为另一个阿里云账号下,华东1(杭州)地域下的testbucket添加Cname配置,命令如下:

./ossutil64 bucket-cname --method put oss://testbucket example.org -e oss-cn-hangzhou.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA****  -k 67DLVBkH7EamOjy2W5RVAHUY9H****

关于此命令的其他通用选项的更多信息,请参见通用选项