没有目录的概念,ListObjects 会列出所有的文件
阿里云、minio 等浏览器端访问所展示的树状目录结构是怎么实现的?
可能没描述清楚,好多人误解了我的意思。看了下delimiter的定义就豁然开朗了!
A delimiter is a character you use to group keys. 用于对对象键进行分组。所有对象键中从 prefix 或从头(如未指定 prefix)到首个 delimiter 之间相同的部分将作为 CommonPrefixes 下的一个 Prefix 节点,被分组的对象键不再出现在后续对象列表中。
从prefix到收个delimiter进行分组
1
6IbA2bj5ip3tK49j 2020-08-12 19:58:11 +08:00
找到 key,按 /进行 split,不就 ojbk 了吗?
|
3
AlisaDestiny 2020-08-12 20:16:54 +08:00
很明显,你这是把 OOS 当网盘用了,如果你是想把一个项目的文件归类,那么把文件名按一定规则存就行了。
如果你是想区分项目,那么新建 bucket. |
4
tuine OP @AlisaDestiny 再用 minio 浏览器端过程中突然想到了,有点好奇
|
5
calmzhu 2020-08-12 22:44:33 +08:00
跟操作系统一样的
数据是一个文件, 目录文件也是一种文件。 |
6
monsterxx03 2020-08-12 22:58:39 +08:00
一般 api 里会支持 delimiter 参数, 传 delimiter=/ , 就能达成你要的效果了, 比如 openstack swift: https://docs.openstack.org/zh_CN/user-guide/cli-swift-pseudo-hierarchical-folders-directories.html
|
7
opengps 2020-08-12 23:00:14 +08:00 via Android
学习对象存储的最好方式是看官方帮助文档,你要的答案可以参考阿里云 oss 帮助文档 https://help.aliyun.com/document_detail/130345.html?source=5176.11533457&userCode=ta5rjs45&type=copy
找 OSS 的数据是如何组织的? 章节介绍 |
8
polythene 2020-08-12 23:36:20 +08:00
同样的道理,etcd 存的也是个扁平的 key-value 结构,但用户用的时候可能有一些逻辑上的层次关系,把这个层次关系分隔出来,就能对应到操作系统的文件和文件夹的关系了,可以参考我的这个项目 https://github.com/polyrabbit/etcdfs
|
10
lc7029 2020-08-13 01:06:17 +08:00
目录当成文件名
|
11
laminux29 2020-08-13 01:47:28 +08:00
非常简单啊,3 步骤:
1.定义一个分隔符号字符串。 2.文件名不允许使用分隔符号。 3.最终文件名等于当前父路径 + 文件名。 |
12
widewing 2020-08-13 02:57:06 +08:00 via Android
先全部列出来,然后过滤,就这样。所以数量多了效率不行
|
13
zhxhwyzh14 2020-08-13 08:39:19 +08:00
腾讯云的对象存储有目录
|