
# 分享对象
#### 操作场景
您可以使用对象分享功能，通过对象的临时URL将存放在OBS中的对象分享给所有用户。
#### 背景知识
实际业务场景下，您可能会需要将文件临时分享给其他人或者将文件永久共享给其他人。
- 临时分享： 通过文件的临时URL直接将其分享给其他用户。文件分享强调临时性，所有分享的URL都是临时URL，存在有效期。
  临时URL是由文件的访问域名和临时鉴权信息组成。示例如下：
  ```
  https://bucketname.obs.cn-north-4.myhuaweicloud.com:443/image.png?AccessKeyId=xxx&Expires=xxx&x-obs-security-token=xxx&Signature=xxx
  ```
  临时鉴权信息主要包含**AccessKeyId** 、**Expires** 、**x-obs-security-token** 和**Signature** 四个参数。其中**AccessKeyId** 、**x-obs-security-token** 和**Signature** 用于鉴权，**Expires**定义鉴权的有效期。
  临时鉴权的方法及各参数的详细解释，请参见《对象存储服务API参考》的[URL中携带签名](https://support.huaweicloud.com/api-obs/obs_04_0011.html)章节。
  
- 永久共享： 通过将对象权限设置为匿名用户读取权限，通过分享对象URL，匿名用户通过分享的链接地址可访问对象数据。设置权限请参见[对匿名用户授予指定对象的公共读权限](https://support.huaweicloud.com/perms-cfg-obs/obs_40_0033.html)。
  对象类型不同，通过浏览器访问该对象的方式不同。例如：.txt、.html等文件可直接通过浏览器打开浏览，而.exe、.dat等文件则会在浏览器打开时，自动下载到本地。
  获取对象访问URL请参见[如何获取对象访问路径？](https://support.huaweicloud.com/obs_faq/obs_faq_0031.html)
  操作失败请参见[通过URL访问对象失败](https://support.huaweicloud.com/obs_faq/obs_03_0033.html)进行处理。
  
 
#### 约束与限制
- 临时分享文件不需要提取码。对于临时分享文件夹，分享策略选择提取码分享，详情请参见[分享文件夹](https://support.huaweicloud.com/usermanual-obs/obs_03_0104.html#ZH-CN_TOPIC_0000001858186066)。
- 临时分享文件的URL有效期如下：
  
  | 支持的使用方式                                                                             | 有效期                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
  |:---|:---|
  | [管理控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets) | 取值范围为1分钟到18小时。 当对对象执行"分享"之后，OBS就会以默认5分钟的有效期获取临时鉴权信息，并生成分享链接，此时链接就已经生效并且开始计算时间了。每调整一次URL有效期，OBS就会重新获取一次鉴权信息以生成新的分享链接，新链接的有效期从调整的时候开始计算。 如果想要设置更长的有效期，建议使用客户端工具OBS Browser+，OBS Browser+最长支持1年的有效期。如果想要设置永久的权限，请[通过桶策略向所有用户授予对象的只读权限](https://support.huaweicloud.com/perms-cfg-obs/obs_40_0033.html)。                                                                                                                                                                                               |
  | SDK                                                                                 | 通过参数"Expires"设置临时授权失效的时间，临时授权失效的时间最长为20年。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
  | API                                                                                 | 通过参数"Expires"设置临时授权失效的时间，临时授权失效的时间最长为20年。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
  | OBS Browser+                                                                        | - 当使用账号密码登录时，分享的有效期最长只有24小时，默认10小时。  - 当使用永久AK/SK方式登录时，分享的有效期最长为1年，默认1天。  - 当使用授权码登录方式时，分享的有效期以分享者设置的分享有效期为准。   |
  | obsutil                                                                             | 通过附加参数"e"设置生成的对象下载链接的过期时间（单位：秒），最小值为60秒，默认为300秒，设置的过期时间没有上限。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
     
  
- 仅桶版本号为3.0的桶支持文件分享功能。查询桶版本号方法请参见[OBS 2.0和OBS 3.0的判断方法](https://support.huaweicloud.com/usermanual-obs/obs_41_0003.html#ZH-CN_TOPIC_0000001946494161__zh-cn_topic_0000001875345461_zh-cn_topic_0176132495_section105141866239)。
- 归档存储对象需恢复后才能分享。
- 深度归档存储对象需恢复后才能分享。
- 分享文件特性发布区域，请以各区域实际情况为准。
 
#### 使用方式
OBS支持通过[管理控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)、API、SDK、OBS Browser+、obsutil方式分享对象。
#### 使用OBS控制台
1. 在OBS[管理控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)左侧导航栏选择"桶列表"。
2. 在桶列表中，单击待操作的桶，进入"对象"页面。
3. 选中待分享的文件，并单击右侧操作列的"分享"。
4. 在"分享文件"弹窗，设置相关参数。 
   图1分享文件   
   ![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000002387306449.png "点击放大")
   表1分享文件参数说明 
   | 参数名称   | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
   |:---|:---|
   | URL有效期 | 文件URL的有效时间，超过有效期链接将失效。 - URL有效期范围为1分钟\~18小时，有效期内任何用户都可以通过URL直接访问该对象。如果要分享有效期时长更长的链接，建议使用[OBS Browser+工具](https://support.huaweicloud.com/browsertg-obs/obs_03_1067.html)。  - 该弹窗打开时，链接信息已生效并开始计时，有效期默认为5分钟。修改URL有效期后会重新开始计时，同时链接信息会相应变化，您需要重新复制链接信息。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
   | 用户协议   | 分享的链接使用的用户协议。 默认为"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"，将在新页面打开对象进行预览或者直接下载对象到本地。
   
   - 单击"复制链接"，您可以将该链接分享给其他用户，用户可以在浏览器中通过此链接直接访问该对象。
   
   - 单击"复制路径"，您可将该路径分享给所有拥有对象所在桶权限的用户，用户可以在对应桶的对象列表页中部的搜索框中粘贴该路径并按"Enter"键，来搜索查看对象信息或访问对象。
   
   
   
   
 
#### 使用API
[URL中携带签名](https://support.huaweicloud.com/api-obs/obs_04_0011.html)
#### 使用SDK
| [Java](https://support.huaweicloud.com/sdk-java-devg-obs/obs_21_0900.html) | [Python](https://support.huaweicloud.com/sdk-python-devg-obs/obs_22_1301.html) | [C](https://support.huaweicloud.com/sdk-c-devg-obs/obs_20_0700.html) | [Go](https://support.huaweicloud.com/sdk-go-devg-obs/obs_33_0601.html) | [BrowserJS](https://support.huaweicloud.com/sdk-browserjs-devg-obs/obs_24_0801.html) | [.NET](https://support.huaweicloud.com/sdk-dotnet-devg-obs/obs_25_0701.html) | [Android](https://support.huaweicloud.com/sdk-android-devg-obs/obs_26_0701.html) | [iOS](https://support.huaweicloud.com/sdk-ios-devg-obs/obs_27_0701.html) | [PHP](https://support.huaweicloud.com/sdk-php-devg-obs/obs_28_0701.html) | [Node.js](https://support.huaweicloud.com/sdk-nodejs-devg-obs/obs_29_0701.html) |
|---|---|---|---|---|---|---|---|---|---|
   
#### 使用图形化工具OBS Browser+
1. 登录OBS Browser+。
2. 选中待配置的对象，单击需要共享的对象右侧的![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000001199510166.png)图标，如下[图2]、[图3]所示。
   
   图2分享文件   
   ![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000001244150161.png "点击放大")
   
   图3分享文件夹   
   ![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000001244110163.png "点击放大")
   
   
   
3. 单击"复制链接"，将该对象链接地址复制到浏览器中打开，即可访问该对象。 
   ![](https://support.huaweicloud.com/usermanual-obs/public_sys-resources/note_3.0-zh-cn.png)
   对于存储类别为归档存储的桶中的对象，如果要让匿名用户通过URL访问，则需要先确认对象的状态是否为"已恢复"。
   基于安全合规要求，华为云对象存储服务OBS禁止通过OBS的默认域名在线预览桶内对象，即使用分享链接从浏览器访问桶内对象（如视频、图片、网页等）时，不会显示对象内容，而是以附件形式下载。解决方案请参考：[如何在浏览器中在线预览OBS中的对象？](https://support.huaweicloud.com/obs_faq/obs_03_0087.html)
   
   
 
#### 使用命令行工具obsutil
**命令结构：**
- Windows操作系统
  - 生成单个对象的下载链接
    ```
    obsutil sign obs://bucket/key [-e=300] [-config=xxx] [-endpoint=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
    ```
    
  
  - 按对象名前缀批量生成对象的下载链接
    ```
    obsutil sign obs://bucket[/key] -r [-e=300] [-timeRange=time1-time2] [-include=*.xxx] [-exclude=*.xxx] [-o=xxx] [-config=xxx] [-endpoint=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
    ```
    
   
- macOS/Linux操作系统
  - 生成单个对象的下载链接
    ```
    ./obsutil sign obs://bucket/key [-e=300] [-config=xxx] [-endpoint=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
    ```
    
  
  - 按对象名前缀批量生成对象的下载链接
    ```
    ./obsutil sign obs://bucket[/key] -r [-e=300] [-timeRange=time1-time2] [-include=*.xxx] [-exclude=*.xxx] [-o=xxx] [-config=xxx] [-endpoint=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
    ```
    
   
**运行示例：**
- 以Windows操作系统为例，运行**obsutil sign obs://bucket-test/test.txt** ，生成单个对象下载链接。
  ```
  obsutil sign obs://bucket-test/test.txt
  Download url of [obs://bucket-test/test.txt] is:
    http://your-endpoint/bucket-test/test.txt?AccessKeyId=xxxx&Expires=1552548758&Signature=xxxx
  ```
  
- 以Windows操作系统为例，运行**obsutil sign obs://bucket-test/test/ -r** ，批量生成对象下载链接。
  ```
  obsutil sign obs://bucket-test/test/ -r
  Generate download urls for objects . 
  Generate the download url(s) for the objects in the bucket [bucket-test] finished 
  Task id: af4dc692-6a88-4541-8156-ff1a889d2288
  ```
  ![](https://support.huaweicloud.com/usermanual-obs/public_sys-resources/note_3.0-zh-cn.png)
  - 由于可能存在对象数量庞大的场景，OBS Util会将对象的下载链接归档到结果清单文件目录下具体的文件，该文件名与Task Id相关联，比如上例的Task Id为af4dc692-6a88-4541-8156-ff1a889d2288，那么存在sign_succeed_report_{时间戳}_af4dc692-6a88-4541-8156-ff1a889d2288.txt文件。
  
  - 结果清单文件目录默认为用户目录的子文件夹.obsutil_output，也可以通过-o参数指定生成目录。
    
**参数说明：**
| **参数**    | **约束**       | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
|:---|:---|:---|
| bucket    | 必选           | 桶名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| key       | 可选           | 生成单个对象下载链接的对象名，或批量生成对象下载链接的对象名前缀。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| e         | 附加参数，可选      | 生成的对象下载链接的过期时间（单位：秒），最小值为60秒，默认为300秒。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| r         | 附加参数，批量生成时必选 | 按指定的对象名前缀批量生成对象的下载链接。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| exclude   | 附加参数，批量生成时可选 | 不包含对象的匹配模式，如：\*.txt。 说明： - 支持"\*"匹配多个任意字符和"?"匹配单个任意字符，例如abc\*.txt代表匹配以abc开头以.txt结尾的任意文件。  - 您可以使用"\\\*"代表匹配"\*"字符本身，使用"\\?"代表匹配"?"字符本身。  - 如果待下载的对象名匹配该参数，则跳过该对象的复制。   须知： - 建议使用引号传递该匹配模式（macOS/Linux操作系统使用单引号，Windows操作系统使用双引号）防止特殊符号被操作系统转义，导致不可预期的结果。  - 该匹配模式作用于对象全路径（含从根路径开始的对象前缀和对象名，例如，桶内对象路径为obs://bucket/src1/src2/test.txt，则对象的全路径为src1/src2/test.txt）。  - 该匹配模式仅适用于对象名非"/"结尾的对象。  - 支持指定多个exclude参数，如-exclude=\*.xxx -exclude=\*.xxx                              |
| include   | 附加参数，批量生成时可选 | 包含对象的匹配模式，如：\*.jpg。 说明： - 支持"\*"匹配多个任意字符和"?"匹配单个任意字符。  - 您可以使用"\\\*"代表匹配"\*"字符本身，使用"\\?"代表匹配"?"字符本身。  - 首先执行exclude的匹配规则，如果待下载的对象名不匹配exclude，则判断待下载的对象名是否匹配该参数，如果匹配则下载该对象，否则跳过该文件的下载。   须知： - 建议使用引号传递该匹配模式（macOS/Linux操作系统使用单引号，Windows操作系统使用双引号）防止特殊符号被操作系统转义，导致不可预期的结果。  - 该匹配模式作用于对象全路径（含从根路径开始的对象前缀和对象名，例如，桶内对象路径为obs://bucket/src1/src2/test.txt，则对象的全路径为src1/src2/test.txt）。  - 该匹配模式仅适用于对象名非"/"结尾的对象。  - 支持指定多个include参数，如-include=\*.xxx -include=\*.xxx   |
| timeRange | 附加参数，可选      | 生成对象下载链接时的时间段匹配模式，仅生成最后修改时间在该时间段内对象的链接。 该匹配模式优先级低于对象名匹配模式：exclude和include，优先执行对象名匹配模式后才会执行该匹配模式。 说明： - 该匹配模式表示的时间是UTC时间。  - 该匹配模式仅适用于对象名非"/"结尾的对象。  - 使用"time1-time2"，代表匹配的时间段，其中time1必须小于等于time2，格式为yyyyMMddHHmmss。  - 时间格式支持自动补全，例如yyyyMMdd等价于yyyyMMdd000000，yyyyMM等价于yyyyMM01000000。  - 使用"\*-time2"，代表匹配最后修改时间在time2之前的所有文件，使用"time1-\*"，代表匹配最后修改时间time1之后的所有文件。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| o         | 附加参数，批量生成时可选 | 生成结果清单文件的文件夹，命令执行完成后，会在该文件夹下生成结果清单文件（可能包含成功结果和失败结果两个文件），默认为运行obsutil命令的用户目录的子文件夹.obsutil_output。 说明： - 结果清单文件命名规则：sign_{succeed \| failed}_report_时间_TaskId.txt。 单个结果清单文件默认情况下最大为30MB且最大可保留的文件个数为1024，可在配置文件中通过recordMaxLogSize和recordBackups分别配置。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| config    | 附加参数，可选      | 运行当前命令时的自定义配置文件。可支持的配置参数请参考[配置参数说明](https://support.huaweicloud.com/utiltg-obs/obs_11_0035.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| endpoint  | 附加参数，可选      | 指定终端节点。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| i         | 附加参数，可选      | 指定用户的AK。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| k         | 附加参数，可选      | 指定用户的SK。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| t         | 附加参数，可选      | 指定用户的securitytoken。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
   
