
# 清理碎片
#### 使用场景
桶中不完整的数据称之为碎片。OBS采用分段上传的模式上传数据，在下列情况下（但不仅限于此）通常会导致数据上传失败而产生碎片。
- 网络条件较差，与OBS的服务器之间的连接经常断开。
- 上传过程中，人为中断上传任务。
- 设备故障。
- 突然断电等特殊情况。
上传失败而产生的碎片会存储在OBS中，您可以使用本章提供的方式进行手动清理碎片，也可以根据需要选择通过[继续运行中断或失败的分段上传任务消除碎片]。
![](https://support.huaweicloud.com/usermanual-obs/public_sys-resources/note_3.0-zh-cn.png)
- 当您遇到删除桶失败的场景，请检查碎片列表中的对象是否已经全部删除。如果没有，请先删除碎片列表中的所有对象。
- 当您遇到桶内无对象，却还在扣费的场景，请检查桶内是否还存在碎片。如果存在，请删除碎片以节约存储成本。
 
#### 费用说明
OBS中的碎片会占用存储空间，会按照存储空间计费项进行计费。
#### 手动清理碎片
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_0000001921975292.png "点击放大")
   
   
 
#### 使用API
您可以通过以下步骤来直接删除桶中碎片：
1. 使用[列举桶中已初始化多段任务](https://support.huaweicloud.com/api-obs/obs_04_0097.html)接口，来列举所有分段上传任务，获取所有UploadId。
2. 使用[取消多段上传任务](https://support.huaweicloud.com/api-obs/obs_04_0103.html)接口，来取消分段上传任务，即可删除所有碎片。
 
#### 使用SDK
OBS SDK通常只有采用多段上传，并且最后没有合并多段上传任务时会产生碎片，您通过取消多段上传任务来删除桶内碎片。步骤如下：
1. 使用ObsClient.listMultipartUploads列举所有分段上传任务，获取所有UploadId。
2. 使用ObsClient.abortMultipartUpload取消分段上传任务，即可删除所有分段碎片。
| [Java](https://support.huaweicloud.com/sdk-java-devg-obs/obs_21_0619.html) | [Python](https://support.huaweicloud.com/sdk-python-devg-obs/obs_22_1008.html) | C不支持 | [Go](https://support.huaweicloud.com/sdk-go-devg-obs/obs_33_0516.html) | [BrowserJS](https://support.huaweicloud.com/sdk-browserjs-devg-obs/obs_24_0507.html#section3) | [.NET](https://support.huaweicloud.com/sdk-dotnet-devg-obs/obs_25_0408.html#section3) | [Android](https://support.huaweicloud.com/sdk-android-devg-obs/obs_26_0407.html#section4) | [iOS](https://support.huaweicloud.com/sdk-ios-devg-obs/obs_27_0406.html#section3) | [PHP](https://support.huaweicloud.com/sdk-php-devg-obs/obs_28_0407.html#section3) | [Node.js](https://support.huaweicloud.com/sdk-nodejs-devg-obs/obs_29_0407.html#section4) |
|---|---|---|---|---|---|---|---|---|---|
   
#### 使用图形化工具OBS Browser+
1. 登录OBS Browser+。
2. 选中待配置的桶，单击"碎片"。
3. 在"碎片"窗口中选择需要删除的碎片，单击上方清理图标。也可单击页面上方"删除所有"，清除所有碎片。单击右上角![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000001240541671.png)刷新碎片列表，如[图2]所示。
   
   图2碎片管理   
   ![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000001902383705.png "点击放大")
   
   
4. 在弹出的"警告"对话框中确认删除任务信息，单击"是"。
5. 单击"是"。 
   页面返回到"碎片"窗口，可关闭此窗口返回到OBS Browser+首页。
   
   
 
#### 使用命令行工具obsutil
obsutil分段上传任务产生的碎片，可以通过删除分段上传任务来删除碎片。如果一个桶内有多个分段任务，则需要删除多个任务来删除桶中所有碎片。
具体操作请参见[删除分段上传任务](https://support.huaweicloud.com/utiltg-obs/obs_11_0020.html)。
#### 通过生命周期规则自动清理碎片
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. 在OBS管理控制台桶列表中，单击待操作的桶，进入"对象"页面。
3. 在左侧导航栏单击"数据管理 \> 生命周期规则"，进入"生命周期规则"界面。
4. 单击"创建"，系统弹出创建生命周期规则对话框。
5. 根据要求，配置以下参数。其他参数可根据需要设置，具体请参见[配置生命周期规则](https://support.huaweicloud.com/usermanual-obs/obs_41_0074.html#ZH-CN_TOPIC_0000001945139386)。
   
   ![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000002495381572.png "点击放大")
   表1"基本信息"参数说明 
   | 参数名称     | 示例                                                                                                 | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   |:---|:---|:---|
   | 状态       | **已开启**                                                                                            | 是否启用生命周期规则。 - 开关开启，启用生命周期规则，受规则影响的对象将在指定天数后转换存储类别/自动删除/删除碎片/清理无历史版本的删除标记。  - 开关关闭，表示不启用生命周期规则。                                                                                                                                                                                                                          |
   | 规则名称     | **rule-2aee**                                                                                      | 生命周期规则的名称。 命名规则如下： - 长度不超过255个字符。  - 只能由大写或小写的英文字母、数字、英文句号（.）、下划线（_）和连字符（-）组成。                                                                                                                                                              |
   | 范围       | **所有对象**                                                                                           | 使用对象名称作为筛选条件，明确生命周期规则适用的对象范围。 - 对象前缀：配置对象前缀后，桶内满足该前缀的对象将受生命周期规则管理。  - 所有对象：桶内所有对象都将受生命周期规则管理。   **配置范围时，需要注意多条生命周期规则之间重叠的情况，重叠的规则必须要满足[重叠规则约束](https://support.huaweicloud.com/zh-cn/usermanual-obs/obs_41_0072.html#ZH-CN_TOPIC_0000001972178513__zh-cn_topic_0000001870567984_section139151017133111)，否则将会因规则冲突导致生命周期规则配置失败。** |
   | 当前版本     | **未开启**                                                                                            | 是否启用"当前版本"的配置。 - 开关打开，表示启用配置，**最多配置4条记录**。  - 开关关闭，表示不启用配置。                                                                                                                                                                                                                                                                    |
   | 历史版本     | **未开启**                                                                                            | 是否启用"历史版本"的配置。 - 开关打开，表示启用配置，**最多配置4条记录**。  - 开关关闭，表示不启用配置。                                                                                                                                                                                                                                                                   |
   | 碎片过期规则设置 | **状态：已开启** **设置天数：30天** | 指定碎片在产生多少天后被删除。 - 状态：是否启用"碎片过期规则设置"。开关打开，表示启用配置；开关关闭，表示不启用配置。  - 设置天数：指定桶内碎片在产生后多少天自动被删除。                                                                                                                                                                                                                                     |
      
   
   
6. 勾选"我已确认以上生命周期规则设置，以及可能会产生的费用。"。
7. 单击"确定"，完成生命周期规则配置。
 
#### 使用OBS API
[设置桶的生命周期](https://support.huaweicloud.com/api-obs/obs_04_0034.html)
#### 使用OBS SDK
| [Java](https://support.huaweicloud.com/sdk-java-devg-obs/obs_21_1102.html) | [Python](https://support.huaweicloud.com/sdk-python-devg-obs/obs_22_0821.html) | [C](https://support.huaweicloud.com/sdk-c-devg-obs/obs_20_0902.html) | [Go](https://support.huaweicloud.com/sdk-go-devg-obs/obs_33_0423.html) | [BrowserJS](https://support.huaweicloud.com/sdk-browserjs-devg-obs/obs_24_1002.html) | [.NET](https://support.huaweicloud.com/sdk-dotnet-devg-obs/obs_25_0902.html) | [Android](https://support.huaweicloud.com/sdk-android-devg-obs/obs_26_0902.html) | [iOS](https://support.huaweicloud.com/sdk-ios-devg-obs/obs_27_0902.html) | [PHP](https://support.huaweicloud.com/sdk-php-devg-obs/obs_28_0902.html) | [Node.js](https://support.huaweicloud.com/sdk-nodejs-devg-obs/obs_29_0902.html) |
|---|---|---|---|---|---|---|---|---|---|
   
 #### 相关操作
OBS提供任务管理功能，当分段上传任务中断或失败时，您可以通过以下多种方式继续运行这些任务，任务完成后，碎片也会随着消除。
表2消除碎片的不同方式 
| 方式           | 操作指导                                                                                                                                                                                                                                                                                                           |
|:---|:---|
| OBS Browser+ | OBS Browser+提供图形化的任务管理界面，运行完成碎片对应的上传对象任务，碎片即可消除。 具体操作请参考[管理失败队列](https://support.huaweicloud.com/browsertg-obs/obs_03_1074.html)、[管理已暂停队列](https://support.huaweicloud.com/browsertg-obs/obs_03_1071.html)。 |
| obsutil      | obsutil通过结果清单记录失败的任务，您可以通过结果清单对应的任务号恢复失败的上传任务，从而消除碎片。 具体操作请参考[恢复失败的上传任务](https://support.huaweicloud.com/utiltg-obs/obs_11_0036.html)。                                                                     |
| OBS SDK      | OBS SDK通过记录上传进度提供断点续传，您可以读取记录的进度，继续上传中断或失败的分段上传任务。 具体操作请参考各SDK开发指南中的"断点续传"章节。                                                                                                                               |
   
