V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
fgxcoy
V2EX  ›  PHP

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

  •  
  •   fgxcoy · Sep 26, 2017 · 9281 views
    This topic created in 3137 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
        2
    fgxcoy  
    OP
       Sep 26, 2017
    没人?
    enrolls
        3
    enrolls  
       Sep 26, 2017
    ownCloud?
    fgxcoy
        4
    fgxcoy  
    OP
       Sep 26, 2017
    @enrolls no!
    VgV
        5
    VgV  
       Sep 26, 2017
    $id = md5_file();
    ??????
    Tompes
        6
    Tompes  
       Sep 26, 2017
    @fgxcoy 你可以去参考下百度网盘的 API,设计思想基本吻合。
    文件夹和文件分别给予特征与文件 ID 关联就好了。
    文件 ID 对应真实地址。

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

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

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

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