# 创建和删除文件夹
#### 使用场景
您可以在已创建的桶中新建一个文件夹，从而更方便地对存储在OBS中的数据进行分类管理。
由于OBS是一种对象存储服务，并没有文件系统中的文件和文件夹概念。为了使用户更方便进行管理数据，OBS提供了一种方式模拟文件夹。实际上在OBS内部是通过在对象的名称中增加"/"，将该对象在OBS[管理控制台](https://console.huaweicloud.com/console/?locale=zh-cn#/obs/manager/buckets)或者OBS Browser+上模拟成一个文件夹的形式展现。通过API等方式列举对象，获取到的对象名就是以"/"分隔的，最后一个"/"后的内容就是对象名。如果最后一个"/"后没有内容，则表示一个文件夹路径。文件夹的层级结构深度不会影响访问对象的性能。
#### 创建文件夹使用方式
创建文件夹有两种方式：
- 上传对象名中携带"/"分隔符的对象，例如上传对象名为"Dir/test.txt"的对象，会自动在控制台生成一个名为Dir的目录，目录中包含名为test.txt的对象。如何上传对象参见[上传对象](https://support.huaweicloud.com/usermanual-obs/zh-cn_topic_0045829661.html#ZH-CN_TOPIC_0000002431041564)。
- 主动创建文件夹：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. 在"文件夹名称"中输入新文件夹名称。 
   - 支持创建单个文件夹和多层级的文件夹。
   
   - 任何单个斜杠（/）表示分隔并创建多层级的文件夹。
   
   - 文件夹名称不能包含点斜杠（./）或反斜杠（\\）。
   
   - 文件夹名称不能以斜杠（/）或点（.）结尾。
   
   - 不能包含两个以上相邻的斜杠（/）。
   
   - 文件夹的绝对路径总长度不能超过1023字节。
   
   
   
   
5. 单击"确定"。
 
#### 使用API
通过API创建文件夹，本质上来说是创建了一个大小为0且对象名以"/"结尾的对象。请参见[使用API](https://support.huaweicloud.com/usermanual-obs/obs_03_1002.html#ZH-CN_TOPIC_0000001948908065__zh-cn_topic_0000001919694150_section12356015429)上传一个大小为0，名称以"/"结尾的对象。
#### 使用SDK
通过SDK创建文件夹，本质上来说是创建了一个大小为0且对象名以"/"结尾的对象。请参见[使用SDK](https://support.huaweicloud.com/usermanual-obs/obs_03_1002.html#ZH-CN_TOPIC_0000001948908065__zh-cn_topic_0000001919694150_section1748013919427)上传一个大小为0，名称以"/"结尾的对象。
#### 使用图形化工具OBS Browser+
1. 登录OBS Browser+。
2. 单击目标桶名称进入对象管理界面，单击"新建文件夹"。
3. 在对话框中输入文件夹的名称后，单击"确定"，如[图1]所示。
   
   图1新建文件夹   
   ![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000001856024982.png "点击放大")
   - 文件夹名称不能包含以下字符 : \\:\*?'\<\>\|。
   
   - 文件夹名称不能以英文句号（.）或斜杠（/）开头或结尾。
   
   - 文件夹名称长度不能超过1023字节。(如果有上级目录，加上所有上级目录名长度（目录自动增加/），文件夹名总长度最大为1023字节)。例如:文件夹folder01的上级目录是folder02，文件夹名长度是按照folder02/folder01/的字节数计算的。
   
   - 单个斜杠（/）表示分隔并创建多层级的文件夹。
   
   
   ![](https://support.huaweicloud.com/usermanual-obs/public_sys-resources/note_3.0-zh-cn.png)
   如果创建文件夹时弹出拒绝访问的错误提示，则有可能是如下几种情况导致的：
   - 通过桶的ACL设置功能，限制了该桶的访问权限（如：该用户无桶的写入权限）。
   
   - 通过桶的桶策略功能，限制了该桶的访问权限(如:当前时间段不允许对桶进行写入、该用户无桶的写入权限等)。
   
   
   请检查桶的ACL设置和桶策略配置，排查错误。
   
   
4. 单击消息提示框中的"确定"。
 
#### 使用命令行工具obsutil
**命令结构**：
- Windows操作系统
  - 在指定桶内创建文件夹
    ```
    obsutil mkdir obs://bucket/folder[/subfolder1/subfolder2] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
    ```
    
  
  - 在本地文件系统路径中创建文件夹
    ```
    obsutil mkdir folder_url [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
    ```
    
   
- macOS/Linux操作系统
  - 在指定桶内创建文件夹
    ```
    ./obsutil mkdir obs://bucket/folder[/subfolder1/subfolder2] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
    ```
    
  
  - 在本地文件系统路径中创建文件夹
    ```
    ./obsutil mkdir folder_url [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
    ```
    
   
**运行示例：**
- 以Windows操作系统为例，运行**obsutil mkdir obs://bucket-test/folder1/folder2** ，在桶内创建文件夹。
  ```
  obsutil mkdir obs://bucket-test/folder1/folder2
  The bucket [bucket-test] does not support POSIX, create folder(s) step by step
  Create folder [obs://bucket-test/folder1/] successfully, request id [0000016979E1D23C860BB3D8E4577C5E]
  Create folder [obs://bucket-test/folder1/folder2] successfully, request id [0000016979E1D2B2860BB5181229C72C]
  ```
  
**参数说明：**
| **参数**      | **约束**               | **描述**                                                                                                                                  |
|:---|:---|:---|
| bucket     | 在指定的桶内创建文件夹时必选   | 桶名。                                                                                                                                   |
| folder     | 在指定的桶内创建文件夹时必选   | 桶内的文件夹路径，支持多级文件夹，以"/"分隔。                                                                                                              |
| folder_url    | 在本地文件系统路径中创建文件夹时必选 | 本地文件系统中的文件夹路径，支持绝对路径和相对路径。                                                                                                              |
| bucket-cname | 附加参数，可选              | 指定桶绑定的自定义域名 说明： Util 5.7.9版本及以上支持该参数。 |
| config       | 附加参数，可选             | 运行当前命令时的自定义配置文件。可支持的配置参数请参考[配置参数说明](https://support.huaweicloud.com/utiltg-obs/obs_11_0035.html)。              |
| e           | 附加参数，可选           | 指定终端节点。                                                                                                                                |
| i           | 附加参数，可选            | 指定用户的AK。                                                                                                                               |
| k            | 附加参数，可选            | 指定用户的SK。                                                                                                                              |
| t           | 附加参数，可选           | 指定用户的securitytoken。                                                                                                                    |
   
#### 删除文件夹
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. 选中要删除的文件夹，然后单击搜索栏上方的"删除"。 
   ![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000002660167829.png "点击放大")
   
   
4. 删除完成后，如果列表页没有对应文件夹，则删除成功。
 
#### 使用API
OBS没有删除文件夹的API接口，需要您自行编码，调用[删除对象](https://support.huaweicloud.com/sdk-java-devg-obs/obs_21_0804.html)或[批量删除对象](https://support.huaweicloud.com/sdk-java-devg-obs/obs_21_0809.html)接口，删除文件夹及文件夹中的对象。
#### 使用SDK
| [Java](https://support.huaweicloud.com/sdk-java-devg-obs/obs_21_0809.html) | [Python](https://support.huaweicloud.com/sdk-python-devg-obs/obs_22_0919.html) | [C](https://support.huaweicloud.com/sdk-c-devg-obs/obs_20_1813.html) | [Go](https://support.huaweicloud.com/sdk-go-devg-obs/obs_33_0507.html) | [BrowserJS](https://support.huaweicloud.com/sdk-browserjs-devg-obs/obs_24_0704.html)  | [.NET](https://support.huaweicloud.com/sdk-dotnet-devg-obs/obs_25_0604.html) | [Android](https://support.huaweicloud.com/sdk-android-devg-obs/obs_26_0604.html) | [iOS](https://support.huaweicloud.com/sdk-ios-devg-obs/obs_27_0604.html) | [PHP](https://support.huaweicloud.com/sdk-php-devg-obs/obs_28_0604.html) | [Node.js](https://support.huaweicloud.com/sdk-nodejs-devg-obs/obs_29_0607.html) |
|---|---|---|---|---|---|---|---|---|---|
   
#### 使用图形化工具OBS Browser+
1. 登录OBS Browser+。
2. 选中待配置的桶，进入文件列表。
3. 右键待删除的文件或文件夹，并单击"删除"。 
   也可以选中多个文件或文件夹，单击文件列表上方的"更多\>删除"进行批量删除。
   
   
4. 选中待删除的文件或文件夹后，在消息确认框中单击"是"。
#### 使用命令行工具obsutil
**命令结构：**
- Windows操作系统
  - 删除单个对象
    ```
    obsutil rm obs://bucket/key [-f] [-versionId=xxx] [-fr] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
    ```
    
  
  - 批量删除对象
    ```
    obsutil rm obs://bucket/[key] -r [-j=1] [-f] [-v] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
    ```
    
   
- macOS/Linux操作系统
  - 删除单个对象
    ```
    ./obsutil rm obs://bucket/key [-f] [-versionId=xxx] [-fr] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
    ```
    
  
  - 批量删除对象
    ```
    ./obsutil rm obs://bucket/[key] -r [-j=1] [-f] [-v] [-o=xxx] [-config=xxx] [-e=xxx] [-i=xxx] [-k=xxx] [-t=xxx]
    ```
    
   
**运行示例：**
- 以Windows操作系统为例，运行**obsutil rm obs://bucket-test/key -f** ，删除bucket-test桶中名为key的单个对象。
  ```
  obsutil rm obs://bucket-test/key -f
  Start at 2024-09-25 04:48:10.1147483 +0000 UTC
  Delete object [key] in the bucket [bucket-test] successfully, cost [152], request id [0000016979E1D2B2860BB5181229C72C]
  ```
  

- 以Windows操作系统为例，运行**obsutil rm obs://bucket-test -r -f** ，删除bucket-test桶中所有对象。
  ```
  obsutil rm obs://bucket-test -r -f
  Start at 2024-09-30 08:46:55.5335644 +0000 UTC
  [===============================================] 100.00% 21s
  Succeed count:   1313      Failed count:    0
  Task id: 95936984-f81a-441a-bba0-1fd8254d9241
  ```
  

- 以Windows操作系统为例，运行**obsutil rm obs://bucket-test/key -r -f** ，删除bucket-test桶中所有以key为前缀的对象和文件夹。
  ```
  obsutil rm obs://bucket-test/key -r -f
  Start at 2024-09-30 08:49:09.5602115 +0000 UTC
  [===============================================] 100.00% 21s
  Succeed count:   10      Failed count:    0
  Task id: 79ab59ec-7e00-4f22-8c88-465faa834125
  ```
  
**参数说明：**
| **参数**      | **约束**                                                                                                                           | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
|:---|:---|:---|
| bucket        | 必选                                                                                                                             | 桶名。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| key         | 删除单个对象时必选 批量删除对象时可选           | 待删除的对象名，或批量删除的对象名前缀。 说明： 批量删除对象时，如果该参数为空，则表示删除桶中所有的对象。请谨慎操作。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| fr          | 附加参数，删除单个对象时可选                                                                                                                | 删除单个对象时生成结果清单文件。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| f           | 附加参数，可选                                                                                                                       | 强制操作，不进行询问提示。请谨慎使用。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| versionId    | 附加参数，删除单个对象时可选 删除多版本对象时必选。 | 待删除对象的版本号。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| r           | 附加参数，批量删除对象时必选                                                                                                               | 按指定的对象名前缀批量删除对象。 注意： 批量删除对象时，会将与前缀匹配的所有对象删除，请谨慎使用。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| j           | 附加参数，批量删除对象时可选                                                                                                               | 批量删除对象时的最大并发数，默认为配置文件中的defaultJobs。 说明： 工具会保证该值至少为1。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| v          | 附加参数，批量删除对象时可选                                                                                                                | 按指定的对象名前缀批量删除多版本对象和多版本删除标记。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| o            | 附加参数，可选                                                                                                                       | 生成结果清单文件的文件夹，命令执行完成后，会在该文件夹下生成结果清单文件（可能包含成功结果和失败结果两个文件），默认为运行obsutil命令的用户目录的子文件夹.obsutil_output。 说明： - 结果清单文件命名规则：rm_{succeed \| failed}_report_时间_TaskId.txt。  - 单个结果清单文件默认情况下最大为30MB且最大可保留的文件个数为1024，可在配置文件中通过recordMaxLogSize和recordBackups分别配置。  - 当涉及多文件/文件夹时，如需确认失败任务的具体错误信息，可参考结果清单文件夹下的失败结果清单文件"cp_failed_report_时间_TaskId.txt"和日志路径下的[日志文件](https://support.huaweicloud.com/utiltg-obs/obs_11_0056.html)。   |
| bucket-cname | 附加参数，可选                                                                                                                          | 指定桶绑定的自定义域名 说明： Util 5.7.9版本及以上支持该参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| config       | 附加参数，可选                                                                                                                         | 运行当前命令时的自定义配置文件。可支持的配置参数请参考[配置参数说明](https://support.huaweicloud.com/utiltg-obs/obs_11_0035.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| e           | 附加参数，可选                                                                                                                       | 指定终端节点。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| i           | 附加参数，可选                                                                                                                        | 指定用户的AK。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| k            | 附加参数，可选                                                                                                                        | 指定用户的SK。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| t           | 附加参数，可选                                                                                                                       | 指定用户的securitytoken。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
   
**响应结果：**
| **字段名**         | **描述**                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
|:---|:---|
| Parallel       | 请求中的-p参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| Jobs          | 请求中的-j参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| Threshold      | 请求中的-threshold参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| PartSize         | 请求中的-ps参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| Exclude        | 请求中的-exclude参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| Include       | 请求中的-include参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| TimeRange       | 请求中的-timeRange参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
| VerifyLength  | 请求中的-vlength参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| VerifyMd5     | 请求中的-vmd5参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| CheckpointDir   | 请求中的-cpd参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| OutputDir      | 请求中的-o参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
| ArcDir         | 请求中的-arcDir参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| Succeed count | 成功的任务数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| Failed count   | 失败的任务数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| Skip count      | 增量上传/下载/复制、同步上传/下载/复制跳过的任务数。 说明： 跳过的任务数也会记录到成功的任务数中。                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| Warning count  | 执行完成但包含警告的任务数。 说明： - 产生警告的任务可能是失败的也可能是成功的，需要根据成功或失败的结果清单进一步判断。  - 产生警告的任务数与成功/失败任务数是相互独立的，总任务数仍是成功的任务数+失败的任务数。   |
| Succeed bytes | 成功上传的字节数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| max cost       | 所有任务中的最长耗时，单位：毫秒。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| min cost      | 所有任务中的最短耗时，单位：毫秒。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| average cost    | 平均耗时，单位：毫秒。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| average tps     | 平均每秒的任务完成个数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     |
| Task id      | 每次运行的唯一标识号，用于查找批量任务生成的结果清单文件。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
   
#### 后续操作
您可以单击文件夹后面操作列的"更多 \> 复制路径"，复制文件夹的路径。您可以将获取到路径共享给其他用户，其他用户可以找到存储对象的桶后，在搜索对象框中输入该路径值即可获取到对象。
