详细解答可以参考官方帮助文档
OSS中文件夹的概念仅是一个逻辑概念,在通过API/SDK的方式设置文件夹的时候可以指定object对应的key值包括前面的目录即可实现该功能。例如,定义object的key为abc/1.jpg就会在该bucket下创建一个abc的文件夹,而在文件夹下即会有一个1.jpg的文件。在控制台上也可以通过新建文件夹按钮来创建文件夹。
OSS中的文件夹其实是一个大小为0KB的空文件。因此,用户创建一个key值为1/的object就会定义文件夹1;并且如果用户创建文件abc/1.jpg,系统是不会创建abc/这个文件的,因此在删除abc/1.jpg后将不会再存在abc这个文件夹。
由于OSS采用的是分布式存储的方式,object并不是根据文件夹进行物理存储的。也就是说并不是一个文件夹下的所有的文件都会存储在一起的。在后端存储的过程中不同的文件夹的文件仅仅是key值的前缀不一样。因此这种架构下就会导致无法很方便的统计某个文件夹下的汇总信息,如文件夹大小、文件夹PV数等。而想要遍历某个文件夹下的所有的文件也需要首先通过ListObject接口获取文件夹下的所有文件的key值(这里需要通过prefix指定文件夹),然后再进行操作。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。