fgxcoy
V2EX  ›  PHP

想用 PHP 自建一个网盘,没有思路。。。

  •  
  •   fgxcoy · Sep 26, 2017 · 9752 views
    This topic created in 3325 days ago, the information mentioned may be changed or developed.

    想实现一个类似百度网盘的文件管理功能,文件存储在对象存储里(每个文件有一个唯一 id,id 可以另行存储) 用数据库如何设计类似于文件树的结构? 一个目录(/imagr/wallpaper/001.jpg ),通过这个目录可以直接读取指定文件信息

    之前尝试过许多想法,但都失败了 o(>﹏<)o

    29 replies  •  2017-09-27 18:20:37 +08:00
    fgxcoy
    fgxcoy
    OP
    Sep 26, 2017
    2
    没人?
    enrolls
    enrolls
    Sep 26, 2017
    3
    ownCloud?
    fgxcoy
    fgxcoy
    OP
    Sep 26, 2017
    4
    @enrolls no!
    VgV
    VgV
    Sep 26, 2017
    5
    $id = md5_file();
    ??????
    Tompes
    Tompes
    Sep 26, 2017
    6
    @fgxcoy 你可以去参考下百度网盘的 API,设计思想基本吻合。
    文件夹和文件分别给予特征与文件 ID 关联就好了。
    文件 ID 对应真实地址。

    以上,不知道有没有理解错楼主的意思。
    lengyihan
    lengyihan
    Sep 26, 2017 via Android
    7
    有源码。极简网盘。
    znood
    znood
    Sep 26, 2017 via iPhone
    8
    做过的说你这个其实很简单了,直接把路径当对象存储 ID,根据前缀列举文件,缺点是文件不能太多

    方案很多,简单的最好实现。
    ZXCDFGTYU
    ZXCDFGTYU
    Sep 26, 2017 via iPad
    9
    fastdfs 实现存储,剩下的业务自己搞去吧
    doresu
    doresu
    Sep 26, 2017 via Android
    10
    JasperWong
    JasperWong
    Sep 26, 2017
    11
    看看 owncloud
    0x8C
    0x8C
    Sep 26, 2017
    12
    又造轮子
    isCyan
    isCyan
    Sep 26, 2017
    13
    刚做的,文件都在七牛上,没用数据库。
    从七牛拿到文件列表之后,导出成一个 txt/json 然后从里面读取,生成一个文件树的 php array 保存到另一个文件,每次访问都从 php array 里面拿文件。
    就是更新比较麻烦,但是个人用来共享文件觉得够了。
    文件夹路径和七牛上文件路径都是一模一样的。

    https://downloads.bohan.co/
    isCyan
    isCyan
    Sep 26, 2017
    14
    https://github.com/int64ago/secloud
    一个废弃的项目,php,你可以看看之前 commit 的 readme
    misaka20038numbe
    misaka20038numbe
    Sep 26, 2017
    15
    多级分类+路径保存。和普通的博客类似,只不过这里的文章是文件名称而已。如果是我的话就这样做。
    Undefined001
    Undefined001
    Sep 27, 2017
    16
    owncloud,php 写的 ,可以自己搭建用。https://owncloud.org/
    Undefined001
    Undefined001
    Sep 27, 2017
    17
    尴尬刚看到楼主对这个说 no 了
    cxbig
    cxbig
    Sep 27, 2017
    18
    那么多现成的,就算你不直接用,作为参考自己写一遍也行啊。
    luo362722353
    luo362722353
    Sep 27, 2017
    19
    yetishare 你可以考虑一下,功能比较齐全
    cyn
    cyn
    Sep 27, 2017 via Android
    20
    fox0001
    fox0001
    Sep 27, 2017
    21
    在用 NextCloud,PHP 开发的
    fox0001
    fox0001
    Sep 27, 2017
    22
    @misaka20038numbe #8 简单的话,按这个来实现就可以了。关于树的数据结构,google 一下,一大堆文章
    huguotai
    huguotai
    Sep 27, 2017
    23
    尴尬的看到了高三这个字样。。。
    raofeng
    raofeng
    Sep 27, 2017
    24
    NextCloud +1
    xiaoz
    xiaoz
    Sep 27, 2017
    25
    NextCloud 是 PHP 的,不过感觉并不是很稳定,因此我推荐用 seafile
    wuersi
    wuersi
    Sep 27, 2017
    26
    玩玩还可以,如果存的东西多的话价格昂贵,阿里云对象存储费用分为三部分:
    1.存储费用,
    2.流量费用,
    3.请求次数;

    嘿嘿,你可以通过内网把阿里云 ecs 挂载到 oss,内网不走流量,只收取 ecs 的流量费;我试过了,100g 以内的存储还好说,超过的话价格越来越贵,个人用很不划算,好处是隐私比某度等网盘要好点,可以存不可描叙的东西没人说你,没有 8 秒,。
    我已经弃用了,吃不起
    cephei
    cephei
    Sep 27, 2017
    27
    fgxcoy
    fgxcoy
    OP
    Sep 27, 2017
    28
    @doresu 能简单说说原理吗
    fgxcoy
    fgxcoy
    OP
    Sep 27, 2017
    29
    @znood 方案很多?那再列举几个吧
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1596 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 62ms · UTC 23:10 · PVG 07:10 · LAX 15:10 · JFK 18:10
    ♥ Do have faith in what you're doing.