
# obs_put_properties
 表1obs_put_properties 
| **参数名称**                     | **参数类型**                                                                                                           | **是否必选** | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
|:---|:---|:---|:---|
| content_type                 | char \*                                                                                                            | 必选       | **参数解释：** 指定对象被下载时的文件类型。 **约束限制：** 无 **取值范围：** 参见HTTP标准头域Content-Type的取值。 **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| md5                          | char \*                                                                                                            | 必选       | **参数解释：** 对象数据的MD5值（经过Base64编码），提供给OBS服务端，校验数据完整性。OBS服务端会将该MD5值与对象数据计算出的MD5值进行对比，如果不匹配则上传失败，返回HTTP 400错误。 **约束限制：** 对象数据的MD5值必须经过Base64编码。如果不设置对象的MD5值，OBS服务端会忽略对对象数据的MD5值校验。 **取值范围：** 按照RFC 1864标准计算出消息体的MD5摘要字符串，即消息体128-bit MD5值经过Base64编码后得到的字符串。 示例：n58IG6hfM7vqI4K0vnWpog== **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| cache_control                | char \*                                                                                                            | 必选       | **参数解释：** 指定对象被下载时的网页的缓存行为。 **约束限制：** 无 **取值范围：** 参见HTTP标准头域Cache-Control的取值。 **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| content_disposition_filename | char \*                                                                                                            | 必选       | **参数解释：** 指定对象被下载时的名称。假设设置为test.txt则相当于添加了Content-Disposition: attachment; filename=test.txt头域 **约束限制：** 无 **取值范围：** 参见HTTP标准头域Content-Disposition的取值。 **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| content_encoding             | char \*                                                                                                            | 必选       | **参数解释：** 指定对象被下载时的内容编码格式。 **约束限制：** 无 **取值范围：** 参见HTTP标准头域Content-Encoding的取值。 **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| website_redirect_location    | char \*                                                                                                            | 必选       | **参数解释：** 当桶设置了Website配置，可以将获取这个对象的请求重定向到桶内另一个对象或一个外部的URL。 例如，重定向请求到桶内另一对象： x-obs-website-redirect-location:/anotherPage.html 或重定向请求到一个外部URL： x-obs-website-redirect-location:http://www.example.com/ **约束限制：** 必须以"/"、"http://"或"https://"开头，长度不超过2KB。 **取值范围：** 无 **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                    |
| get_conditions               | [obs_get_conditions] \*                                                            | 可选       | **参数解释：** 对象上传、拷贝和下载等操作的前置条件和一系列行为参数集合。 **约束限制：** 无 **取值范围：** 无 **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| start_byte                   | uint64_t                                                                                                           | 可选       | **参数解释：** 指定复制对象的起始位置。 **取值范围：** \[0\~对象长度-1)，单位：字节。 **默认取值：** 0（即从对象的第一个字节开始复制）                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| byte_count                   | uint64_t                                                                                                           | 可选       | **参数解释：** 指定复制的长度。 **取值范围：** - 取值必须大于0。  - 如果"start_byte+byte_count"大于对象长度-1，实际仍取对象长度-1，单位为字节。   **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| upload_limit                 | uint64_t                                                                                                           | 可选       | **参数解释：** 对单链接请求的带宽限制。 **取值范围：** \[819200，838860800\]，单位 bit/s。 **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| expires                      | int64_t                                                                                                            | 可选       | **参数解释：** OBS请求中Expires头的值。指定Object被下载时的网页的缓存过期时间。 **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| obs_expires                  | int64_t                                                                                                            | 可选       | **参数解释：** 指定对象过期时间，单位是天。过期之后对象会被自动删除。 **约束限制：** 设置的天数计算出的过期时间不能早于当前时间，如10天前上传的对象，不能设置小于10的值。 **取值范围：** 大于0的整数值。 **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| canned_acl                   | [obs_canned_acl](https://support.huaweicloud.com/sdk-c-devg-obs/obs_20_0089.html#obs_20_0089__table49057657)       | 可选       | **参数解释：** 权限控制策略。 **约束限制：** 无 **取值范围：** 无 **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| az_redundancy                | [obs_az_redundancy](https://support.huaweicloud.com/sdk-c-devg-obs/obs_20_0086.html#obs_20_0086__table49057657)    | 可选       | **参数解释：** 创建桶时指定的多AZ冗余策略。 **约束限制：** 无 **取值范围：** 多AZ或单AZ。 - 单AZ: OBS_REDUNDANCY_1AZ  - 3AZ: OBS_REDUNDANCY_3AZ   **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| meta_data_count              | int                                                                                                                | 可选       | **参数解释：** meta_data数组中元素的个数。 **约束限制：** 无 **取值范围：** 无 **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| meta_data                    | [obs_name_value](https://support.huaweicloud.com/sdk-c-devg-obs/obs_20_0087.html#obs_20_0087__table214412614302)\* | 可选       | **参数解释：** 对象的自定义元数据。OBS支持用户使用自定义的元数据，以便对对象进行自定义管理。当用户获取此对象或查询此对象元数据时，加入的自定义元数据将会在返回的消息头中出现。 **约束限制**： - 如果请求携带了此头域，那么响应的消息中应该包含此消息头。  - 所有自定义元数据大小的总和不超过8KB。单个自定义元数据大小的计算方式为：每个键和值的UTF-8 编码中的字节总数。  - 自定义元数据的key值不区分大小写，OBS统一转为小写进行存储。value值区分大小写。  - 自定义元数据key-value对都必须符合US-ASCII。如果一定要使用非ASCII码或不可识别字符，需要客户端自行做编解码处理，可以采用URL编码或者Base64编码，服务端不会做解码处理。例如x-obs-meta-中文：中文经URL编码后发送，"中文"的URL编码为：%E4%B8%AD%E6%96%87，则响应为x-obs-meta-%E4%B8%AD%E6%96%87: %E4%B8%AD%E6%96%87   **取值范围：** 无 **默认取值：** 无 |
| metadata_action              | [metadata_action_indicator]                                                      | 可选       | **参数解释：** 元数据操作指示符。 **取值范围：** - REPLACE_NEW：表示对于已经存在值的元数据进行替换，不存在值的元数据进行赋值，未指定的元数据保持不变（自定义头域作替换处理）。  - REPLACE：表示使用当前请求中携带的头域完整替换，未指定的元数据会被删除。   **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| server_callback              | [obs_upload_file_server_callback]                                               | 可选       | **参数解释：** 服务端回调相关参数。 **约束限制：** 无 **取值范围：** 无 **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
   
 表2obs_get_conditions 
| **参数名称**              | **参数类型**                                                        | **是否必选** | **描述**                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| start_byte            | uint64_t                                                        | 可选       | **参数解释：** 指定下载对象的起始位置。 **取值范围：** \[0\~对象长度-1)，单位：字节。 **默认取值：** 0（即从对象的第一个字节开始下载）                                                                                                                                                                   |
| byte_count            | uint64_t                                                        | 可选       | **参数解释：** 指定下载的长度。 **取值范围：** - 取值必须大于0。  - 如果"start_byte+byte_count"大于对象长度-1，实际仍取对象长度-1，单位为字节。   **默认取值：** 无 |
| download_limit        | uint64_t                                                        | 可选       | **参数解释：** 对单链接请求的带宽限制。 **取值范围：** \[819200，838860800\]，单位 bit/s。 **默认取值：** 无                                                                                                                                                                          |
| if_modified_since     | int64_t                                                         | 可选       | **参数解释：** 如果对象在指定的时间后有修改，则请求成功，否则返回错误。                                                                                                                                                                                                                                                                                                                                     |
| if_not_modified_since | int64_t                                                         | 可选       | **参数解释：** 如果对象在指定的时间后没有修改，则请求成功，否则返回错误。                                                                                                                                                                                                                                                                                                                                     |
| if_match_etag         | char \*                                                         | 可选       | **参数解释：** 指定一个预设的Etag值，如果下载或复制对象的ETag值与该参数值相同，则请求成功，否则返回错误。 **取值范围：** 长度为32的字符串。 **默认取值：** 无                                                                                                                                                         |
| if_not_match_etag     | char \*                                                         | 可选       | **参数解释：** 指定一个预设的Etag值，如果下载或复制对象的ETag值与该参数值不相同，则请求成功，否则返回错误。 **取值范围：** 长度为32的字符串。 **默认取值：** 无                                                                                                                                                       |
| image_process_config  | [image_process_configure] \* | 可选       | **参数解释：** 图片处理相关参数。 **约束限制：** 无 **取值范围：** 无 **默认取值：** 无                                                                                                                               |
   
 表3metadata_action_indicator 
| **常量名**                | **原始值**     | **说明**                                                   |
|:---|:---|:---|
| OBS_NO_METADATA_ACTION | -           | 默认的无效值。                                                  |
| OBS_REPLACE            | REPLACE     | 表示使用当前请求中携带的头域完整替换，未指定的元数据会被删除。                          |
| OBS_REPLACE_NEW        | REPLACE_NEW | 表示对于已经存在值的元数据进行替换，不存在值的元数据进行赋值，未指定的元数据保持不变（自定义元数据作替换处理）。 |
   
 表4obs_upload_file_server_callback 
| **参数名称**           | **参数类型** | **是否必选** | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|:---|:---|
| callback_url       | char \*  | 必选       | **参数解释：** 对象上传成功之后，OBS向此url发送回调请求，请求方法为POST。 支持设置多个url，以英文分号（;）分隔，最多支持10个。 callbackUrl需要做url编码。例如："http://www.example.com/中文?key=中文名"需要编码成"http://www.example.com/%E4%B8%AD%E6%96%87?key=%E4%B8%AD%E6%96%87%E5%90%8D"。 **约束限制：** 无 **取值范围：** 无 **默认取值：** 无                                                                                                                                                                                              |
| callback_host      | char \*  | 可选       | **参数解释：** 发起回调请求的Host头域的值，如果不设置，会使用callbackUrl解析出来的Host。 **约束限制：** 无 **取值范围：** 无 **默认取值：** 无                                                                                                                                                                                                                                                                                                                                                                                                                       |
| callback_body      | char \*  | 必选       | **参数解释：** 发起回调请求的body体。body体格式必须符合callbackBodyType中设置的媒体类型。 回调body体支持系统变量和自定义变量，系统变量如[回调body体支持的系统变量表](https://support.huaweicloud.com/api-obs/obs_04_0095.html#obs_04_0095__table695016242719)所示，自定义变量就是以x:开头的变量。例如：key=$(key)\&hash=$(etag)\&fileid=$(x:fileid)，其中变量key、etag是系统变量，x:fileid是自定义变量。如果用户上传的对象是图片，可以在参数中设置imageInfo.width和imageInfo.height表示该图片的宽高。例如：key=$(key)\&hash=$(etag)\&w=$(imageInfo.width)\&h=$(imageInfo.height)。 **约束限制：** 无 **取值范围：** 无 **默认取值：** 无 |
| callback_body_type | char \*  | 可选       | **参数解释：** 发起回调请求的Content-Type头域的值。 **约束限制：** 无 **取值范围：** - application/x-www-form-urlencoded  - application/json   **默认取值：** 如果不设置取值，则默认为application/json。                                                                                                                                                                                                                               |
   
 表5image_process_configure 
| **参数名称**           | **参数类型**                                                      | **是否必选** | **描述**                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| image_process_mode | [image_process_mode_type] | 可选       | **参数解释：** 图片处理参数头。 **约束限制：** 无 **取值范围：** 无 **默认取值：** 无    |
| cmds_stylename     | char \*                                                       | 可选       | **参数解释：** 图片处理相关参数。 **约束限制：** 无 **取值范围：** 无 **默认取值：** 无 |
   
 表6image_process_mode_type 
| **常量名**                        | **原始值** | **说明**          |
|:---|:---|:---|
| obs_image_process_invalid_mode | -       | 默认的无效值。         |
| obs_image_process_cmd          | image   | 图片处理参数以image开头。 |
| obs_image_process_style        | style   | 图片处理参数以style开头。 |
   
