# 通过自定义域名访问桶
当您将文件上传至OBS桶后，OBS会使用桶的默认域名自动生成文件的访问地址，使用浏览器访问该地址时，会强制下载文件。如果您不希望暴露桶的默认域名或希望在浏览器中可以在线预览文件，那么您可以为桶绑定自定义域名，通过自定义域名访问桶中的文件。
#### 使用场景
- 域名可靠性增强：保护您的业务不受其他域名管控活动的干扰。当需要保护桶默认域名（ myhuaweicloud.com ）不被直接暴露时，使用自定义域名可以避免因桶默认域名暴露而使您的业务访问受到不当影响。
- 文件预览：如果您不想强制下载文件，可以通过将自定义域名绑定至OBS桶实现在线预览文件。
- 保持访问链接不变：迁移网站文件或文件存储位置发生变化时，想保持网站各页面或各文件访问链接不变，可以将文件上传至OBS桶并为桶绑定自定义域名，实现网站域名和桶默认域名之间的映射，从而继续使用原链接访问文件。
- 提升品牌形象和专业度：使用固定的个性化的域名访问企业网站，可以增强企业形象和专业度，提升企业客户体验及对企业的信任度。
- 方便访问：使用简单便于记忆的自定义域名访问桶及桶中的文件，更轻松友好。
- 访问.apk或.ipa文件：基于安全合规要求，系统阻止通过桶默认域名下载.apk或.ipa文件，而为桶绑定自定义域名后，通过自定义域名访问.apk或.ipa文件不会被阻止。
  ![](https://support.huaweicloud.com/usermanual-obs/public_sys-resources/note_3.0-zh-cn.png)
  通过桶默认域名下载.apk或.ipa文件时，OBS会返回400错误码，错误码为[InsecureDownloadForbidden](https://support.huaweicloud.com/api-obs/obs_04_0115.html)。
  
 
#### 原理介绍
使用自定义域名访问桶中对象和使用桶默认域名访问桶中对象的具体请求流程如下所示。
- [使用自定义域名访问桶中对象]
  使用自定义域名访问桶中对象的具体请求流程如[图1]所示：
  图1使用自定义域名访问桶中对象   
  ![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000002349873109.png "点击放大")
  1. 用户在浏览器中输入文件访问地址（带有自定义域名的地址）来发起访问请求。
  
  2. DNS将请求解析到域名*bucketName* .obs.*regionID* .myhuaweicloud-custom.com。
     *bucketName* 为桶名，*regionID* 为区域名，更多区域名请参见[获取区域名称](https://console.huaweicloud.com/apiexplorer/#/endpoint/OBS)。
     
  
  3. DNS通过域名*bucketName* .obs.*regionID*.myhuaweicloud-custom.com解析请求到OBS服务器的IP地址。
  
  4. OBS返回服务器的IP地址给客户端。
  
  5. 客户端向OBS服务器IP地址发起Host为自定义域名的请求。
  
  6. OBS识别请求的Host为自定义域名，向客户端返回不带下载响应头的响应（**Content-Disposition字段设置为inline**）。
   
- [使用桶默认域名访问桶中对象]
  使用桶默认域名（*bucketName* .obs.*regionID* .myhuaweicloud.com）访问桶中对象的请求流程如[图2]所示：
  图2使用桶默认域名访问桶中对象   
  ![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000002315754688.png "点击放大")
  1. 用户在浏览器中输入文件访问地址（带有桶默认域名的地址）来发起访问请求。
  
  2. DNS通过桶默认域名解析请求到OBS服务器的IP地址。
  
  3. OBS返回服务器的IP地址给客户端。
  
  4. 客户端向OBS服务器IP地址发起Host为桶默认域名的请求。
  
  5. OBS识别请求的Host为桶默认域名，向客户端返回带下载响应头的响应（**Content-Disposition字段设置为attachment**）。
   
#### 约束与限制
表1约束与限制 
| 限制类别   | 具体限制                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
|:---|:---|
| 桶版本限制 | 桶版本号为3.0及以上的桶支持配置自定义域名。桶版本号可以在OBS[管理控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)上，进入桶概览页后，在"基本信息"中查看。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| 域名数量限制   | 每个桶默认最多配置20个自定义域名，部分区域支持最多配置100个自定义域名，各区域支持配置的最大值请以[管理控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)自定义域名配置页面的实际规格为准。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| 功能限制  | - 一个自定义域名只能配置到一个桶域名上。  - 暂不支持配置中文域名。域名中不能包含中文字符。  - 配置的自定义域名后缀目前支持的范围为2\~63个英文大小写字母。  - 按照工信部要求，您配置自定义域名的桶所属区域如果为中国大陆区域，那么需要提前完成[ICP备案](https://support.huaweicloud.com/qs-icp/icp_07_0002.html)。  - 自定义域名通常用于公网访问OBS桶，内网访问OBS建议使用桶默认域名（*bucketName* .obs.*regionID*.myhuaweicloud.com）   说明： 如果使用了加速域名，为防止访问OBS桶中对象变成强制下载，配置自定义域名和加速域名后还需要参考[CDN加速场景下访问OBS桶内对象变成强制下载](https://support.huaweicloud.com/obs_faq/obs_faq_0154.html)的问题进行处理。 |
| 权限限制  | 跨账号场景，不允许调用设置/获取/删除桶的自定义域名接口。例如，账号A和账号B是两个华为云账号，账号A不能设置/获取/删除账号B桶的自定义域名。 同账号场景，您必须是桶拥有者或拥有设置自定义域名（obs:bucket:PutBucketCustomDomainConfiguration）、获取自定义域名（obs:bucket:GetBucketCustomDomainConfiguration）、删除自定义域名（obs:bucket:DeleteBucketCustomDomainConfiguration）权限，建议使用IAM或桶策略进行授权。了解更多OBS授权方式请参见[OBS不同权限控制方式的区别](https://support.huaweicloud.com/perms-cfg-obs/obs_40_0001.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   
#### 前提条件
- 已创建桶并上传对象。具体步骤请参见[创建桶](https://support.huaweicloud.com/usermanual-obs/zh-cn_topic_0045829088.html#ZH-CN_TOPIC_0000001952642149)。
- 已有二级域名，支持绑定非华为云注册的域名。如果您还未注册域名，可以在华为云域名注册服务控制台注册域名，具体步骤请参见[注册域名](https://support.huaweicloud.com/qs-domain/zh-cn_topic_0122928858.html)。
- 按照工信部要求，您配置自定义域名的桶所属区域如果为中国大陆区域，那么需要提前完成[ICP备案](https://support.huaweicloud.com/qs-icp/icp_07_0002.html)。
 
#### 配置自定义域名
OBS支持通过[管理控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)、API、obsutil、SDK方式配置自定义域名，不支持通过OBS Browser+方式配置自定义域名。
配置自定义域名分为如下三步：
1. **绑定自定义域名**：为桶绑定自定义域名。
2. **配置CNAME域名解析**：将自定义域名映射为被绑定桶的默认域名。
3. **（可选）配置HTTPS**：使用HTTPS协议访问桶，提升域名访问的安全性。
 
#### 使用OBS控制台
**步骤一：绑定自定义域名**
1. 在OBS[管理控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)左侧导航栏选择"桶列表"。
2. 在桶列表中，单击待操作的桶，进入"对象"页面。
3. 在左侧导航栏选择"基础配置\>域名管理"，进入"域名管理"界面。 
   图3域名管理界面   
   ![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000002629846790.png "点击放大")
   
   
4. 单击页面上方的"添加自定义域名"，右侧弹出"配置自定义域名"弹窗。 
   如果没有绑定自定义域名也可以在页面下方的添加自定义域名卡片中单击"添加自定义域名"。
   图4配置自定义域名
   ![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000002492039126.png "点击放大")
   
   
5. 在"用户域名"中输入需要配置的自定义域名。 
   **输入的域名规范如下：**
   - **首字符为字母或数字。**
   
   - **支持大小写字母、数字、"-"、"."。**
   
   - **不能包含中文字符。**
   
   
   每个桶默认最多配置20个自定义域名，部分区域支持最多配置100个自定义域名，各区域支持配置的最大值请以[管理控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)自定义域名配置页面的实际规格为准。
   ![](https://support.huaweicloud.com/usermanual-obs/public_sys-resources/note_3.0-zh-cn.png)
   如果您在填写用户域名时，需要OBS[管理控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)为您呈现已有华为云域名，便于您在下拉列表中直接选择，则您需要拥有域名注册服务（Domains）的"Domains:domains:getDetails"权限，请联系管理员使用统一身份认证服务（IAM）的角色与策略授权机制为您授权。授权操作请参见[给IAM用户授权](https://support.huaweicloud.com/usermanual-iam/iam_01_0652.html)。
   
   
6. 单击"确定"。
**步骤二：配置CNAME域名解析**
配置解析CNAME，将自定义域名映射为被绑定桶的默认域名。
1. 使用"一键解析"自动配置CNAME解析。 
   - 如果填写的用户域名为华为云域名，请单击"一键解析"。云解析服务DNS会根据填写的域名自动添加一条CNAME记录。
   
   - 如果填写的用户域名非华为云域名，请忽略本步骤，然后参考[2](https://support.huaweicloud.com/usermanual-obs/obs_03_0032.html#ZH-CN_TOPIC_0000001965228938__zh-cn_topic_0000001951418089_li11892750637)手动配置解析规则。
   
   
   
   
2. 手动配置解析CNAME。 
   - **如果您使用的域名为非华为云域名** ，请参考以下方式手动配置解析CNAME。
     - 如果您的域名在DNSPod，请参见域名解析文档：[DNSPod配置方法](https://support.huaweicloud.com/drawer-cdn/cdn_drawer_01023.html)。
     
     - 如果您的域名在万网，请参见域名解析文档：[万网配置方法](https://support.huaweicloud.com/drawer-cdn/cdn_drawer_01024.html)。
     
     - 如果您的域名在新网，请参见域名解析文档：[新网配置方法](https://support.huaweicloud.com/drawer-cdn/cdn_drawer_01025.html)。
      
   
   - **如果您使用的域名为华为云域名** ，可以通过如下步骤手动配置解析CNAME。
     1. 登录[DNS控制台](https://console.huaweicloud.com/dns/?#/dns/publiczones)，进入云解析服务页面。
     
     2. 在左侧菜单栏中，选择"公网域名"，进入域名列表页面。
     
     3. （可选）创建公网域名。如果您之前已创建，请跳过该步骤。
        1. 在"公网域名"页面，单击右上角的"创建公网域名"。
        
        2. 根据提示填写参数配置，参数信息如下所示，其余参数保持默认。
           表2参数说明 
           | 参数 | 取值样例              | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
           |:---|:---|:---|
           | 域名  | **example.com** | 从域名注册商处购买的域名。 此处填写的是为桶绑定的自定义域名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
           | 企业项目 | **default**      | 公网域名关联的企业项目，用于将公网域名资源按照企业项目进行管理。 仅当用户使用的"账号类型"为"企业账号"时，显示该参数，且参数必选。 配置原则： - 如果不通过企业项目管理域名资源，则采用默认值"default"。  - 如果通过企业项目管理域名资源，则在下拉列表中选择已经创建的企业项目。 在设置该参数前，您需要[创建企业项目](https://support.huaweicloud.com/usermanual-em/zh-cn_topic_0108763964.html)。    |
              
           
        
        3. 单击"确定"。
         
     
     4. 在待添加记录集的域名（为桶绑定的自定义域名）所在行，单击"域名"列的域名名称。
     
     5. 进入"解析记录"页面，单击"添加记录集"，进入"添加记录集"页面。
     
     6. 根据界面提示填写参数配置，参数信息如[表3]所示，表中未提到的参数可保持默认值。
        更多参数配置请参见[添加CNAME类型记录集](https://support.huaweicloud.com/usermanual-dns/dns_usermanual_0006.html)。
         表3参数说明 
        | 参数      | 取值样例                          | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
        |:---|:---|:---|
        | 记录类型   | **CNAME - 将域名指向另外一个域名**                                   | 根据域名解析场景选择记录集的类型。 此处选择"CNAME - 将域名指向另外一个域名"类型。 添加记录集时，如果提示解析记录集已经存在，说明待添加的记录集与已有的记录集存在限制关系或者冲突。 详细内容请参见[添加记录集时，为什么会提示"与已有解析记录冲突"？](https://support.huaweicloud.com/dns_faq/dns_faq_016.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
        | 主机记录     | **置空**                                                    | 解析域名的前缀。 例如创建的域名为"example.com"，其"主机记录"设置包括： - www：用于网站解析，表示解析的域名为"www.example.com"。  - 空：用于网站解析，表示解析的域名为"example.com"。 主机记录置为空，还可用于为空头域名"@"添加解析。   - abc：用于子域名解析，表示解析的域名为"example.com"的子域名"abc.example.com"。  - mail：用于邮箱解析，表示解析的域名为"mail.example.com"。  - \*：用于泛解析，表示解析的域名为"\*.example.com"，匹配"example.com"的所有子域名。   |
        | 线路类型      | **全网默认**                                                 | 解析的线路类型用于设置DNS服务器在解析域名时，根据访问者来源返回对应解析结果的规则。 默认值为"全网默认"。 仅支持为公网域名的记录集配置此参数。 - 全网默认：默认线路类型，当未根据访问者来源设置解析线路时，系统会返回默认解析结果。  - 运营商线路解析：根据访问者所在运营商，设置解析线路，详细内容请参见[配置运营商线路解析](https://support.huaweicloud.com/usermanual-dns/dns_usermanual_0020.html)。  - 地域解析：根据访问者所在地域，设置解析线路，详细内容请参见[配置地域线路解析](https://support.huaweicloud.com/usermanual-dns/dns_usermanual_0021.html)。  - 自定义线路：根据访问者所属IP网段，设置解析线路，详细内容请参见[配置自定义线路解析](https://support.huaweicloud.com/usermanual-dns/dns_usermanual_0022.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
        | TTL (秒) | **300秒**                                                   | 解析记录在本地DNS服务器的缓存时间，以秒为单位。 默认值为"300"，即5分钟。取值范围为：1\~2147483647 如果您的服务地址经常更换，建议TTL值设置相对小些，反之，建议设置相对大些。 更多TTL相关内容请参见[什么是TTL值？](https://support.huaweicloud.com/dns_faq/dns_faq_013.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
        | 记录值      | **example-bucket.obs.cn-north-4.myhuaweicloud-custom.com** | 填写您要指向的别名，只能填写一个域名。 - 如果没有使用CDN加速，该值为*bucketName* .obs.*regionID* .myhuaweicloud-custom.com，*bucketName* 为桶名，*regionID* 为区域名。 例如：华北-北京四的区域名为cn-north-4，更多区域名请参见[获取区域名称](https://console.huaweicloud.com/apiexplorer/#/endpoint/OBS)   - 如果使用CDN加速后，该值为CDN分配的CNAME域名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
        | 别名       | **开关关闭**                                                   | 用于是否将此记录集关联至云服务资源实例。 仅支持为公网域名的记录集配置此参数。 与CNAME记录集相比，别名支持一级主域名。 CNAME类型记录集不支持打开别名开关。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
           
        
     
     7. 单击"确定"，完成添加。
     
     8. 验证CNAME域名解析是否生效。 打开Windows操作系统中的cmd程序，输入如下命令：
        ```
        nslookup -type = cname example.name
        ```
        其中，"example.name"是桶配置的自定义域名或CDN加速域名，请替换为您的实际域名。
        - 没有使用CDN加速：如果回显OBS桶域名，则表示CNAME域名解析已经生效。
          图5未使用CDN加速   
          ![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000002429979089.png "点击放大") 
        
        - 使用CDN加速：如果回显CDN分配的CNAME域名，则表示CNAME域名解析已经生效，如下图所示。
          图6使用CDN加速   
          ![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000002343035980.png "点击放大") 
         
      
   
   
   
   
**步骤三：（可选）配置HTTPS**
1. 完成CNAME域名解析后，在"配置自定义域名"弹窗中的"解析CNAME"步骤，单击"下一步"。
2. （可选）在"推荐配置（HTTPS）"页面，如果您不需要配置HTTPS，单击右下角的"我已了解"。
3. （可选）如果您需要配置HTTPS，按照[表4]配置参数。
   
    表4自定义域名的HTTPS配置 
   | 参数分类               | 参数名称 | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   |:---|:---|:---|
   | 选择域名                | 自定义域名                               | 选择需要配置HTTPS证书的自定义域名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   | 证书配置                 | 证书标准 | 支持国际证书、CA证书。 - **国际证书：**遵循国际标准的通用数字证书，由国际认可的证书颁发机构签发，主要用于验证持有者的身份，确保数据传输的安全性。  - **CA证书：**又称客户端CA公钥证书，用于验证客户端证书的签发者，由证书颁发机构签发，用于验证身份和建立信任链，确保通信安全。在HTTPS双向认证功能时，只有当客户端能够出具指定CA签发的证书时，HTTPS连接才能成功。                                                                           |
   | "证书标准"选择"**国际证书**" | 证书                                   | 当"证书标准"选择"国际证书"时，支持配置该参数。 选择需要使用的SCM证书。云证书与管理服务（Cloud Certificate \& Manager，简称CCM）提供的服务器数字证书。 如果您没有证书，可单击"购买证书"至CCM控制台购买证书，购买指导请参见[购买SSL证书](https://support.huaweicloud.com/usermanual-ccm/ccm_01_0074.html)。 **证书存在过期时间，请确保您选择的证书未过期。** **证书到期时，请及时更换证书，否则可能对业务造成影响。**                                                                                  |
   | "证书标准"选择"**CA证书**"  | 证书名称                                | 当"证书标准"选择"CA证书"时，支持配置该参数。 **不支持仅配置CA证书，请至少先配置一张国际证书。** 您的证书名称。命名规则如下： - 请输入中文、英文字符，下划线，中划线，英文逗号，英文句点。  - 长度为3\~63字符。   |
   | "证书标准"选择"**CA证书**"  | 证书文件                                | 当"证书标准"选择"CA证书"时，支持配置该参数。 单击"上传"，选择上传符合格式的证书文件，或用本地文本查看工具打开证书，将证书内容复制到文本框中。 格式如下： 每行64个字符，最后一行不超过64个字符，不能有空行。 ``` -----BEGIN CERTIFICATE----- Base64–encoded certificate -----END CERTIFICATE----- ```                                                                                                                                                                                                                                   |
      
   
   
4. （可选）单击"添加证书"可同时配置多张证书。 
   **每个自定义域名最多支持配置一张国际证书和一张CA证书。**
   
   
5. 单击右下角的"配置"。
 
#### 使用API
[设置桶的自定义域名](https://support.huaweicloud.com/api-obs/obs_04_0059.html)
#### 使用命令行工具obsutil
**命令行结构：**
- Windows操作系统
  ```
  obsutil custom-domain obs://bucket -method=put -cname=xxx [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
  ```
  
- macOS/Linux操作系统
  ```
  ./obsutil custom-domain obs://bucket -method=put -cname=xxx [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
  ```
  
**运行示例：**
以Windows操作系统为例，运行**obsutil custom-domain obs://test-bucket -method=put -cname=www.obs-example.com** ，指定给桶test-bucket绑定www.obs-example.com自定义域名。
```
obsutil custom-domain obs://test-bucket -method=put -cname=www.obs-example.com 
Start at 2024-09-30 07:59:28.8675681 +0000 UTC
Put customDomain configuration succeed for bucket [test-bucket], customDomain is [www.obs-example.com], requestId is [00000199765243C44018D688E9F5CFF5]
```
**参数说明：**
| **参数**          | **约束**       | **描述**                                                                                                                                                  |
|:---|:---|:---|
| bucket            | 必选         | 桶名。                                                                                                                                                     |
| method          | 必选        | 指定方法，设置桶的自定义域名时该值为put。                                                                                                                                 |
| cname           | 必选        | 指定桶的自定义域名。 一个桶最多可以设置100个自定义域名，一个自定义域名只能被一个桶使用。 |
| certificateName | 附加参数，可选     | 指定证书名称，字符长度为3\~63位, 请输入英文字符，数字，下划线，中划线，英文句点。                                                                                                         |
| certificateId  | 附加参数，可选    | 指定证书ID。                                                                                                                                              |
| certificate    | 附加参数，可选  | 指定证书内容。可包含中间证书及根证书。若certificate_chain字段传入证书链，则该字段只取证书本身。如果证书内容出现换行，需要使用转义字符\\n或者\\r\\n替换。                                                             |
| certificateChain | 附加参数，可选    | 指定证书链，可通过certificate字段传入。如果证书链内容出现换行，需要使用转义字符\\n或者\\r\\n替换。                                                                                             |
| privateKey      | 附加参数，可选 | 指定证书私钥。不能上传带有口令保护的私钥。如果证书私钥内容出现换行，需要使用转义字符\\n或者\\r\\n替换。                                                                                               |
| config           | 附加参数，可选     | 运行当前命令时的自定义配置文件。可支持的配置参数请参考[配置参数说明](https://support.huaweicloud.com/utiltg-obs/obs_11_0035.html)。                              |
| e               | 附加参数，可选   | 指定终端节点。                                                                                                                                                |
| i               | 附加参数，可选    | 指定用户的AK。                                                                                                                                               |
| k                | 附加参数，可选    | 指定用户的SK。                                                                                                                                              |
| t               | 附加参数，可选   | 指定用户的securitytoken。                                                                                                                                    |
   
#### 使用SDK
| [Java](https://support.huaweicloud.com/sdk-java-devg-obs/obs_23_1726.html) | [Python](https://support.huaweicloud.com/sdk-python-devg-obs/obs_22_0852.html) | [C](https://support.huaweicloud.com/sdk-c-devg-obs/zh-cn_topic_0000001833016268.html) | [Go](https://support.huaweicloud.com/sdk-go-devg-obs/obs_33_0444.html) | BrowserJS暂不支持 | .NET暂不支持 | Android暂不支持 | iOS暂不支持 | PHP暂不支持 | Node.js暂不支持 |
|---|---|---|---|---|---|---|---|---|---|
   
#### 使用自定义域名访问对象
为桶绑定自定义域名且解析生效后，验证是否可以通过自定义域名访问对象。OBS支持通过[管理控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)、API、SDK、obsutil方式使用自定义域名访问对象，不支持通过OBS Browser+方式使用自定义域名访问对象。
#### 使用OBS控制台
1. 在OBS[管理控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)左侧导航栏选择"桶列表"。
2. 在桶列表中，单击待操作的桶，进入"对象"页面。
3. 选中待分享的文件，并单击右侧操作列的"分享"。
4. 在"分享文件"弹窗，设置相关参数。 
   图7分享文件   
   ![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000002429979101.png "点击放大")
   表5分享文件参数说明 
   | 参数名称 | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
   |:---|:---|
   | URL有效期 | 文件URL的有效时间，超过有效期链接将失效。 - URL有效期范围为1分钟\~18小时，有效期内任何用户都可以通过URL直接访问该对象。如果要分享有效期时长更长的链接，建议使用[OBS Browser+工具](https://support.huaweicloud.com/browsertg-obs/obs_03_1067.html)。  - 该弹窗打开时，链接信息已生效并开始计时，有效期默认为5分钟。修改URL有效期后会重新开始计时，同时链接信息会相应变化，您需要重新复制链接信息。                                                                                                             |
   | 用户协议 | 分享的链接使用的用户协议。默认为"https"。 如果您为自定义域名配置了HTTPS，建议您选择"https"。 - http：适用于对安全性要求不高的场景。  - https：适用于对安全性要求较高的场景。https通过SSL/TLS 协议对数据进行加密传输，保证数据的机密性和完整性；同时会基于证书验证服务器的身份，防止被攻击。                                                                                                                |
   | 自定义域名 | 选择分享链接是否使用自定义域名。此处选择为桶绑定的自定义域名，即分享的链接信息为使用自定义域名拼接成的链接。 - **由于内容分发网络（CDN）是实现公网的访问加速（任何用户均可访问CDN），因此如果自定义域名开启了CDN加速后，可能会造成分享链接永不超期，即任何用户在任何时间均可以访问对象。**  - **如果自定义域名开启了CDN加速且在[配置CDN节点缓存规则](https://support.huaweicloud.com/usermanual-cdn/cdn_01_0116.html#section2)时，配置了忽略URL参数（CDN缓存时忽略请求URL中"?"之后的参数），将会导致分享链接无效。** 说明： 分享链接信息中"?"后面的为鉴权信息，因此鉴权信息被忽略后，分享链接将会失效。    |
      
   
   
5. 分享对象。 
   - 单击"打开URL"，将在新页面打开对象进行预览。
   
   - 单击"复制链接"，您可以将该链接分享给其他用户，用户可以在浏览器中通过此链接直接访问该对象。
   
   
   
   
 
#### 使用API
调用对象API时，例如[下载对象](https://support.huaweicloud.com/api-obs/obs_04_0083.html)，将桶域名（bucketName.obs.regionID.myhuaweicloud.com）变更为自定义域名（例如example.com）。
请求示例：桶未绑定自定义域名：
```
GET /objectkey HTTP/1.1 
Host: bucketname.obs.regionid.myhuaweicloud.com  
Date: date 
Authorization: authorization
```
请求示例：桶绑定自定义域名：
```
GET /objectkey HTTP/1.1
Host: example.com
Date: date
Authorization: authorization
```
#### 使用SDK
1. 获取预签名URL。 
   以下为常用语言的示例代码：
   - Java
     ```
     import com.obs.services.ObsClient;
     import com.obs.services.ObsConfiguration;
     import com.obs.services.model.HttpMethodEnum;
     import com.obs.services.model.TemporarySignatureRequest;
     import com.obs.services.model.TemporarySignatureResponse;
     public class GetObject {
         public static void main(String[] args) {
             // 您可以通过环境变量获取访问密钥AK/SK，也可以使用其他外部引入方式传入。如果使用硬编码可能会存在泄露风险。
             // 您可以登录访问管理控制台获取访问密钥AK/SK
             String ak = System.getenv("ACCESS_KEY_ID");
             String sk = System.getenv("SECRET_ACCESS_KEY_ID");
             // 【可选】如果使用临时AK/SK和SecurityToken访问OBS，同样建议您尽量避免使用硬编码，以降低信息泄露风险。
             // 您可以通过环境变量获取访问密钥AK/SK/SecurityToken，也可以使用其他外部引入方式传入。使用临时访问密钥调用接口可将下面一行的注释取消。
             // String securityToken = System.getenv("SECURITY_TOKEN");
             // endpoint填写桶的自定义域名,如果配置了自定义域名证书，可以修改为https。
             String endpoint = "http://example.com";
             // 您可以通过环境变量获取endPoint，也可以使用其他外部引入方式传入。
             //String endPoint = System.getenv("ENDPOINT");
             ObsConfiguration obsConfiguration = new ObsConfiguration();
             obsConfiguration.setCname(true);
             obsConfiguration.setEndPoint(endpoint);
             try {
                 // 创建ObsClient实例
                 // 使用永久AK/SK初始化客户端
                 ObsClient obsClient = new ObsClient(ak, sk, obsConfiguration);
                 // 使用临时AK/SK和SecurityToken初始化客户端
                 // ObsClient obsClient = new ObsClient(ak, sk, securityToken, obsConfiguration);
                 // URL有效期，3600秒
                 long expires = 3600L;
                 TemporarySignatureRequest request = new TemporarySignatureRequest(HttpMethodEnum.GET, expireSeconds);
                 request.bucketName("bucketname");
                 request.objectKey("objectkey");
                 TemporarySignatureResponse response = obsClient.createTemporarySignature(request);
                 System.out.println("Getting object using temporary signature url:");
                 System.out.println("SignedUrl:" + response.getSignedUrl());
             } catch (Exception e) {
                 System.out.println("create temporary signature failed");
                 e.printStackTrace();
             }
         }
     }
     ```
     
   
   - Python
     ```
     from obs import ObsClient
     import os
     import traceback
     # 推荐通过环境变量获取AKSK，这里也可以使用其他外部引入方式传入，如果使用硬编码可能会存在泄露风险
     # 您可以登录访问管理控制台获取访问密钥AK/SK，获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html
     ak = os.getenv("ACCESS_KEY_ID")
     sk = os.getenv("SECRET_ACCESS_KEY_ID")
     # 【可选】如果使用临时AKSK和SecurityToken访问OBS，则同样推荐通过环境变量获取
     # security_token = os.getenv("SecurityToken")
     # server填写桶的自定义域名,如果配置了自定义域名证书，可以修改为https。
     server = "http://example.domain"
     # 创建obsClient实例
     obsClient = ObsClient(access_key_id=ak, secret_access_key=sk, server=server, is_cname=True)
     # 如果使用临时AKSK和SecurityToken访问OBS，需要在创建实例时通过security_token参数指定securityToken值
     #obsClient = ObsClient(access_key_id=ak, secret_access_key=sk, security_token=security_token, server=server, is_cname=True)
     try:
         # 生成下载对象的带授权信息的URL
         res = obsClient.createSignedUrl(method='GET', bucketName='bucketname', objectKey='objectkey', expires=3600)
         print('signedUrl:', res.signedUrl)
     except:
         print(traceback.format_exc())
     ```
     
   
   
   
   
2. 使用浏览器访问预签名URL。
 
#### 使用命令行工具obsutil
obsutil 支持配置自定义域名访问OBS，目前仅支持列举、上传、下载对象。具体配置步骤如下：
1. 使用前需要[配置自定义域名](https://support.huaweicloud.com/usermanual-obs/obs_03_0032.html#section4)。
2. 在配置文件（.obsutilconfig）中将cname项设置成true。 
   ```
   cname=true
   ```
   
   
3. 在配置文件（.obsutilconfig）中将endpoint项设置成步骤1中配置的自定义域名。 
   ```
   endpoint=https://example.com
   ```
   
   
4. 配置完成后，可以通过如下方式检查配置是否无误。 
   ```
   obsutil ls obs://bucketname
   ```
   根据命令回显结果，检查配置结果：
   - 如果返回结果中包含"Object number :"，表明配置正确。
   
   - 如果返回结果中包含"Http status \[403\]"，表明域名配置有误。
   
   
   
   
![](https://support.huaweicloud.com/usermanual-obs/public_sys-resources/note_3.0-zh-cn.png)
1. 该功能仅支持5.5.3及以上版本。
2. 配置文件（.obsutilconfig）一般存在系统的用户目录下（macOS/Linux操作系统的"\~"目录；Windows操作系统的"C:\\Users\\\<username\>"目录）。
3. 因为桶名与自定义域名是绑定关系，如果配置自定义域名后，仅可管理关联桶的资源。
 
#### 相关文档
#### 使用CDN加速功能提高访问速度
如果您希望提高访问静态资源文件的速度和稳定性，可以使用CDN加速。如果您已为桶配置自定义域名，那么可以直接为自定义域名开启CDN加速；如果您还未为桶配置自定义域名，那么可以配置CDN加速域名。具体操作请参见[通过CDN加速域名访问桶](https://support.huaweicloud.com/usermanual-obs/obs_03_0600.html#ZH-CN_TOPIC_0000001965388738)。
您还可以使用CDN，通过CDN管理控制台进行HTTPS证书管理，即可使用HTTPS访问。CDN管理控制台HTTPS证书管理方式，详情请参见[HTTPS配置](https://support.huaweicloud.com/usermanual-cdn/zh-cn_topic_0064907771.html)。
#### 使用不带签名且长期有效的URL访问对象
![](https://support.huaweicloud.com/usermanual-obs/public_sys-resources/warning_3.0-zh-cn.png)
- 如果您需要获取不带签名且无过期时间的访问对象URL（http://*DomainName* /*ObjectName*），那么您需要将文件权限设置为公共读。设置为公共读后，任何用户都可以访问该文件，这可能造成您的数据泄露及因为访问请求而造成的费用激增。因此，建议您使用携带签名和过期时间的URL访问文件。
- 如果您设置了不带签名和没有过期时间的URL访问对象，为了防止文件被盗用，建议您配置[防盗链](https://support.huaweicloud.com/usermanual-obs/obs_03_0341.html#ZH-CN_TOPIC_0000001904425217)。
 
您可以通过以下两种方式将对象设置为公共读：
- 通过将对象权限设置为匿名用户读取权限，匿名用户通过分享的对象URL可访问对象数据。设置权限请参见[对匿名用户授予指定对象的公共读权限](https://support.huaweicloud.com/perms-cfg-obs/obs_40_0033.html)。
- [为已配置的自定义域名开启加速](https://support.huaweicloud.com/usermanual-obs/obs_03_0600.html#ZH-CN_TOPIC_0000001965388738__zh-cn_topic_0000001924139248_section3834205110376)：保持OBS桶中的对象权限为私有，通过CDN提供公共读访问。此种情况下，对象的URL将无需签名认证且没有有效期，匿名用户均可访问。
 
#### 防止OBS桶中的数据被盗用
一些不良网站为了不增加成本而扩充自己站点内容，经常盗用其他网站的链接。一方面损害了原网站的合法利益，另一方面又加重了服务器的负担。因此，产生了防盗链技术。
如果您希望避免存储在OBS桶中的数据被其他人盗用，可以通过设置HTTP Header中表头字段Referer列表（包括白名单Referer、黑名单Referer、空Referer）的方式，来限制您的桶内资源的访问来源。具体步骤请参见[配置防盗链防止非法流量盗用](https://support.huaweicloud.com/usermanual-obs/obs_03_0341.html#ZH-CN_TOPIC_0000001904425217)。
#### 托管静态网站
如果您希望将您的静态网站托管到OBS，并使用自定义域名访问，您需要为桶设置静态网站托管。具体步骤请参见[静态网站托管](https://support.huaweicloud.com/usermanual-obs/zh-cn_topic_0045829093.html#ZH-CN_TOPIC_0000001925536670)。
#### 常见问题
- [如何在浏览器中在线预览OBS中的对象？](https://support.huaweicloud.com/obs_faq/obs_03_0087.html)
- [为什么通过自定义域名访问桶，提示NoSuchBucket，而通过OBS访问域名可以访问？](https://support.huaweicloud.com/obs_faq/obs_faq_0049.html)
- [为什么会存在CNAME解析状态为未知的情况？](https://support.huaweicloud.com/obs_faq/obs_faq_0070.html)
- [为什么用户在华为云购买的域名才支持一键解析？](https://support.huaweicloud.com/obs_faq/obs_faq_0077.html)
 
