V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
GeekHub
tuine
V2EX  ›  程序员

对象存储既然没有目录概念,那浏览器端的树状结构怎么实现的?

  •  
  •   tuine · 45 天前 · 2072 次点击
    这是一个创建于 45 天前的主题,其中的信息可能已经有所发展或是发生改变。

    没有目录的概念,ListObjects 会列出所有的文件
    阿里云、minio 等浏览器端访问所展示的树状目录结构是怎么实现的?

    第 1 条附言  ·  44 天前

    可能没描述清楚,好多人误解了我的意思。看了下delimiter的定义就豁然开朗了!

    A delimiter is a character you use to group keys. 用于对对象键进行分组。所有对象键中从 prefix 或从头(如未指定 prefix)到首个 delimiter 之间相同的部分将作为 CommonPrefixes 下的一个 Prefix 节点,被分组的对象键不再出现在后续对象列表中。

    从prefix到收个delimiter进行分组

    14 条回复    2020-08-13 09:39:20 +08:00
    xgfan
        1
    xgfan   45 天前
    找到 key,按 /进行 split,不就 ojbk 了吗?
    tuine
        2
    tuine   45 天前
    @xgfan 不是这个意思。比如我想知道根目录有哪些文件及目录?
    AlisaDestiny
        3
    AlisaDestiny   45 天前
    很明显,你这是把 OOS 当网盘用了,如果你是想把一个项目的文件归类,那么把文件名按一定规则存就行了。
    如果你是想区分项目,那么新建 bucket.
    tuine
        4
    tuine   45 天前
    @AlisaDestiny 再用 minio 浏览器端过程中突然想到了,有点好奇
    calmzhu
        5
    calmzhu   44 天前
    跟操作系统一样的
    数据是一个文件,
    目录文件也是一种文件。
    monsterxx03
        6
    monsterxx03   44 天前
    一般 api 里会支持 delimiter 参数, 传 delimiter=/ , 就能达成你要的效果了, 比如 openstack swift: https://docs.openstack.org/zh_CN/user-guide/cli-swift-pseudo-hierarchical-folders-directories.html
    opengps
        7
    opengps   44 天前 via Android
    学习对象存储的最好方式是看官方帮助文档,你要的答案可以参考阿里云 oss 帮助文档 https://help.aliyun.com/document_detail/130345.html?source=5176.11533457&userCode=ta5rjs45&type=copy
    找 OSS 的数据是如何组织的? 章节介绍
    polythene
        8
    polythene   44 天前
    同样的道理,etcd 存的也是个扁平的 key-value 结构,但用户用的时候可能有一些逻辑上的层次关系,把这个层次关系分隔出来,就能对应到操作系统的文件和文件夹的关系了,可以参考我的这个项目 https://github.com/polyrabbit/etcdfs
    bbao
        9
    bbao   44 天前
    @tuine minio 商用提供 web 服务,不购买 license 的话,所有涉及的代码需要开源哟。
    lc7029
        10
    lc7029   44 天前
    目录当成文件名
    laminux29
        11
    laminux29   44 天前
    非常简单啊,3 步骤:
    1.定义一个分隔符号字符串。
    2.文件名不允许使用分隔符号。
    3.最终文件名等于当前父路径 + 文件名。
    widewing
        12
    widewing   44 天前 via Android
    先全部列出来,然后过滤,就这样。所以数量多了效率不行
    zhxhwyzh14
        13
    zhxhwyzh14   44 天前
    腾讯云的对象存储有目录
    tuine
        14
    tuine   44 天前
    @laminux29 一语惊醒梦中人,重新看了下分隔符的定义,豁然开朗。感谢
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2467 人在线   最高记录 5168   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:27 · PVG 22:27 · LAX 07:27 · JFK 10:27
    ♥ Do have faith in what you're doing.