更新时间:2026-07-30 GMT+08:00
分享

管理文件夹概述

OBS凭借其底层的扁平化架构,在处理海量数据时具备优良的扩展性。但当桶内存放了大量文件时,所有对象都平铺在同一个界面中,会使您的查找、批量操作变得繁琐,业务数据的归类也会缺乏清晰的逻辑边界。为了解决这一问题,OBS在控制台、OBS Browser+等可视化工具中提供了“文件夹”视图功能。

工作原理

OBS本质上是采用扁平化的存储结构,即数据以对象的形式存储在桶内,桶内所有对象均处于平等的同一逻辑层级,彼此之间不存在上下级的从属关系,没有真正的文件夹。控制台、OBS Browser+展示的文件夹是OBS依据文件名中的“/”分隔符自动生成的。

图1 OBS文件夹工作原理

图1所示,OBS控制台和OBS Browser+对文件夹的处理逻辑如下:

  • 按照“/”分隔:如果您有名为Dir1/Dir2/test1.txt的对象,则控制台会显示名为Dir1的文件夹,其中包含文件夹Dir2。文件夹Dir2包含对象test1.txt。此外,使用正斜杠字符 (/) 为结尾命名的对象都将显示为控制台中的文件夹。例如,名为Dir1/Dir2/的对象在控制台中显示为文件夹,而不显示为对象。
  • 新建不包含对象的纯文件夹,文件夹大小是0Byte:在OBS控制台中创建文件夹时,将创建一个大小为0字节的对象。此对象名为您提供的文件夹名称加上“/”。例如,创建一个名为Dir的文件夹,控制台将使用“Dir/”为对象名创建一个0字节的对象。
  • 相同前缀对象会被自动归拢到一个文件夹:以相同的形如“xxx/”格式为前缀的对象,会被归拢到一个文件夹中。例如,log/log1.txt和log/log2.txt会被归拢到log文件夹中,Dir1/Dir2/test1.txt和Dir1/Dir2/test2.txt会被归拢到Dir1下的子文件夹Dir2中。

文件夹相关操作

表1 文件夹相关操作

操作

说明

创建和删除文件夹

在桶中新建一个文件夹,从而更方便地分类和管理存储在OBS中的数据。

当您不需要文件夹及文件夹内的对象时,可以删除文件夹

分享文件夹

使用文件夹分享功能,将OBS中的整个文件夹分享给匿名用户。

统计文件夹中的对象数量和大小

统计文件夹的大小,以及文件夹包含对象的数量。

文件夹使用最佳实践

  • 基于前缀匹配为目录配置访问权限:如果要为桶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),因为列举对象时前缀过滤逻辑会影响性能。

相关文档