本文为您介绍ossfs 1.0如何精准识别Bucket中的文件与文件夹。
对象存储与传统存储核心差异
对象存储采用扁平地址空间存储数据,与传统文件系统的层级目录结构不同,其核心区别如下:
无层级关联:OSS Bucket中不存在真实的文件、文件夹概念,所有数据均以对象形式存储。
命名规则差异:
传统文件系统:同一目录下不允许同时存在文件a和文件夹a/。
对象存储:a与a/是两个独立对象,可共存且无逻辑关联。
ossfs 1.0文件系统模拟机制
当通过ossfs 1.0挂载OSS Bucket时,系统会通过以下方式模拟文件系统。
目录树构建:以
/
作为路径分隔符,基于对象名称构建虚拟目录结构。识别逻辑:通过对象名称、Content-Type、大小及配置选项综合判断对象类型(文件/文件夹)。
对象识别原则
若您使用ossfs 1.0、ossfs 2.0或云存储网关CSG等工具或产品挂载OSS Bucket进行使用,在OSS Bucket中创建对象时,需遵循文件系统的命名规则,避免同时出现名为a
和a/
的对象。
场景描述 | 识别结果 | 判定条件/逻辑说明 |
云上仅存在对象 | 文件 | 无特殊标识的单一对象默认视为文件。 |
云上仅存在对象 |
|
|
云上存在对象 | 文件夹 | 通过子对象 |
云上同时存在对象 | ls命令:文件夹 | Bucket中对象命名不符合文件系统规则。 |
stat命令:文件 | ||
云上存在 | 文件 | Bucket中对象命名不符合文件系统规则。 |