想用 PHP 自建一个网盘,没有思路。。。 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fgxcoy
V2EX    PHP

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

  •  
  •   fgxcoy 2017-09-26 20:40:30 +08:00 8905 次点击
    这是一个创建于 2947 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

    嘿嘿,你可以通过内网把阿里云 ecs 挂载到 oss,内网不走流量,只收取 ecs 的流量费;我试过了,100g 以内的存储还好说,超过的话价格越来越贵,个人用很不划算,好处是隐私比某度等网盘要好点,可以存不可描叙的东西没人说你,没有 8 秒,。
    我已经弃用了,吃不起
    cephei
        27
    cephei  
       2017-09-27 12:02:32 +08:00
    fgxcoy
        28
    fgxcoy  
    OP
       2017-09-27 12:06:00 +08:00
    @doresu 能简单说说原理吗
    fgxcoy
        29
    fgxcoy  
    OP
       2017-09-27 18:20:37 +08:00
    @znood 方案很多?那再列举几个吧
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3124 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 11:43 PVG 19:43 LAX 04:43 JFK 07:43
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86