许多终端用户习惯了文件夹这个概念,而较难适应只有bucket和object的云存储逻辑。但我们可以基于OSS从逻辑上实现文件夹功能。
首先,我们可以按照惯例,认为所有以“/”[1]结尾的Object都是一个文件夹。例如,用户认为:“folder”是一个文件;“folder/”是一个文件夹;而“folder/file.txt”是一个放在folder文件夹内名为file.txt的文件。在云存储OSS上,“folder/”、“folder”和“folder/file.txt”其实都是object。
当用户需要查询一个文件夹下的文件时,我们就需要巧妙地通过List Object(Get Bucket)接口的四个参数:prefix,marker,delimiter和max-keys来实现。
例如,我们在OSS上名为”mydata”的bucket内有如下几个文件:
lingyun.doc folder/ folder/file1.txt folder/file2.txt folder/file3.txt folder/image/ folder/image/test.jpg |
res = my_store.list_objects("mydata", delimiter='/') |
res = my_store.list_objects("mydata", prefix=’folder/’, delimiter='/') |
res = my_store.list_objects("mydata", prefix='folder/', marker='folder/file1.txt', delimiter='/', maxkeys='1') |
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。