
# 管理文件夹概述
OBS凭借其底层的扁平化架构，在处理海量数据时具备优良的扩展性。但当桶内存放了大量文件时，所有对象都平铺在同一个界面中，会使您的查找、批量操作变得繁琐，业务数据的归类也会缺乏清晰的逻辑边界。为了解决这一问题，OBS在控制台、OBS Browser+等可视化工具中提供了"文件夹"视图功能。
#### 工作原理
OBS本质上是采用扁平化的存储结构，即数据以对象的形式存储在桶内，桶内所有对象均处于平等的同一逻辑层级，彼此之间不存在上下级的从属关系，没有真正的文件夹。控制台、OBS Browser+展示的文件夹是OBS依据文件名中的"/"分隔符自动生成的。
图1OBS文件夹工作原理   
![](https://support.huaweicloud.com/usermanual-obs/figure/zh-cn_image_0000002618034557.png "点击放大")
如[图1]所示，OBS控制台和OBS Browser+对文件夹的处理逻辑如下：
- **按照"/"分隔**：如果您有名为Dir1/Dir2/test1.txt的对象，则控制台会显示名为Dir1的文件夹，其中包含文件夹Dir2。文件夹Dir2包含对象test1.txt。此外，使用正斜杠字符 (/) 为结尾命名的对象都将显示为控制台中的文件夹。例如，名为Dir1/Dir2/的对象在控制台中显示为文件夹，而不显示为对象。
- **新建不包含对象的纯文件夹，文件夹大小是0** **Byte**：在OBS控制台中创建文件夹时，将创建一个大小为0字节的对象。此对象名为您提供的文件夹名称加上"/"。例如，创建一个名为Dir的文件夹，控制台将使用"Dir/"为对象名创建一个0字节的对象。
- **相同前缀对象会被自动归拢到一个文件夹** ：以相同的**形如"xxx/"**格式为前缀的对象，会被归拢到一个文件夹中。例如，log/log1.txt和log/log2.txt会被归拢到log文件夹中，Dir1/Dir2/test1.txt和Dir1/Dir2/test2.txt会被归拢到Dir1下的子文件夹Dir2中。
#### 文件夹相关操作
表1文件夹相关操作 
| 操作                                                                                                             | 说明                                                                                                                                                                                                                                                                                          |
|:---|:---|
| [创建和删除文件夹](https://support.huaweicloud.com/usermanual-obs/obs_03_0316.html#ZH-CN_TOPIC_0000001904384821)       | 在桶中新建一个文件夹，从而更方便地分类和管理存储在OBS中的数据。 当您不需要文件夹及文件夹内的对象时，可以[删除文件夹](https://support.huaweicloud.com/usermanual-obs/obs_03_0316.html#ZH-CN_TOPIC_0000001904384821__zh-cn_topic_0000001874795097_section1989611975820)。 |
| [分享文件夹](https://support.huaweicloud.com/usermanual-obs/obs_03_0104.html#ZH-CN_TOPIC_0000001858186066)          | 使用文件夹分享功能，将OBS中的整个文件夹分享给匿名用户。                                                                                                                                                                                                                                                               |
| [统计文件夹中的对象数量和大小](https://support.huaweicloud.com/usermanual-obs/obs_06_1009.html#ZH-CN_TOPIC_0000001948908093) | 统计文件夹的大小，以及文件夹包含对象的数量。                                                                                                                                                                                                                                                                      |
   
#### 文件夹使用最佳实践
- 基于前缀匹配为目录配置访问权限：如果要为桶exampleBucket中名为Dir的目录设置访问权限，IAM策略和桶策略的Resource字段设置如下，注意需要搭配通配符"\*"为文件夹中的所有对象配置访问权限，不要错误设置为单独为"Dir/"这个0字节对象配置访问权限：
  - 桶策略：以下示例为指定用户授予exampleBucket桶中Dir目录下所有对象的下载权限。
    ```
    {
        "Statement": [
            {
                "Sid": "DirTest",
                "Effect": "Allow",
                "Principal": {
                    "ID": [
                        "domain/exampleDomainID:user/exampleUserID"
                    ]
                },
                "Action": [
                    "GetObject"
                ],
                "Resource": [
                    "exampleBucket/Dir/*"
                ]
            }
        ]
    }
    ```
    
  
  - IAM策略：以下示例为授予exampleBucket桶中Dir目录下所有对象的下载权限
    ```
    {
        "Version": "1.1",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "obs:object:GetObject"
                ],
                "Resource": [
                    "OBS:*:*:object:exampleBucket/Dir/*"
                ]
            }
        ]
    }
    ```
    
   

- 避免过深的文件夹嵌套结构（如 Dir1/Dir2/Dir3/Dir4/.../test.txt），因为列举对象时前缀过滤逻辑会影响性能。
 
