爱意满满的作品展示区。
vix

[开个源]Golang+ReactJS 嫩了个简单的文件共享服务+语言&妇联

  •  1
     
  •   vix ·
    ihexxa · May 28, 2018 · 4533 views
    This topic created in 2952 days ago, the information mentioned may be changed or developed.
    http://i.loli.net/2018/05/27/5b0a8b136bbdf.jpg

    之前有时想共享个文件, 总是会碰到这样那样的限制, 要么太大, 要么要装客户端, 要么手太懒懒得用 U 盘(是手懒不是我懒:D ).
    总感觉自己是个假码农, 传文件都搞不定. 正好这阵稍微有点时间, 遂用 Go 和 React 自己鲁了一个.
    下载解压启动, 三板斧直接开用.
    已开源, 求 star. [quickshare]( https://github.com/ihexxa/quickshare)

    简单说下特点
    - 支持 Linux, Mac 和 Windows
    - 支持断点续传(下载, 上传可以支持但还没完全完成)
    - 浏览器, 无客户端
    - 绿色
    - 支持限制上传下载速度
    - 支持限制最多下载次数
    - 生成私密下载链接
    - 简单的请求次数限制
    由于都是下班和周末鲁, 时间比较有限, 有些功能还待添加.

    搞完说说感想
    * Go 感觉一直比较受争议. 虽然两夺 TIOBE 年度最佳, 并且 2016 年差不多从 80 多名一波流杀入前 20, 最近又开始暴跌 (TIOBE 你的排名大概是手调的吧).
    * 撸狗(Go)也有一阵了, 简单概括下基本是"所撸即所得". 标准库够用, 虽然有些地方显得不那么灵活. 但是一般写完了, 就能直接跑起来. 有错也能够比较快速的定位到.
    * 这个项目的前端感觉不是很大型,所以没上 Redux 等状态管理和一些常用全家桶( styled component 等)
    * Javascript 还是动态一时爽,时不时火葬场的。如果有空考虑用 TS 搞一把。

    然后写着写着发现可以和妇联里的英雄做个对应(不是每种语言都"精通", 如果不是非常恰当,请指正补充)
    * 首先, 我觉得 Go 应该是美队:
    * 攻击手段简单 (语法简单)
    * 有些古板(部分语法, 比如没条件操作符)
    * 武器单一但够用 (简单全面的标准库)
    * 防守型, 各种 55 开, 有盾牌, 打不过你你也打不到我.(各种返回 error...)
    * 抵达战场要靠交通工具... (依赖管理...)
    * 坚强的(后)盾 (google)
    * "Hulk smash" ( go 关键字一键多线程)
    * 相比下来 Java 应该是钢铁侠
    * 武器库丰富, 导弹激光应有尽有(库, 生态)
    * 多套战甲海陆空全线作战(企业应用, 安卓)
    * 能量来自的能量堆(JVM)
    * 大家都认识托尼(Java 你不认识?)
    * 有作战伙伴 War Machine(scala 等)
    * C++应该是绿巨人浩克
    * 性格狂躁, 一言不合就拆迁 (语法特性多, 难驾驭)
    * 无敌的攻击力(高运行效率)
    * 主要近战(解决问题直接鲁, 而不是 npm install 一堆然后写一句话, 当然还是后者爽)
    * Python & Ruby 幻视+红女巫?

    欢迎补充, 不过别忘帮忙 star 个. :D [quickshare]( https://github.com/ihexxa/quickshare)
    Supplement 1  ·  May 28, 2018

    quickshare

    贴图还是失败了。Append一次吧。

    21 replies    2018-05-31 08:46:02 +08:00
    sunny352787
        1
    sunny352787  
       May 28, 2018
    caddy 了解一下,有插件
    missdeer
        2
    missdeer  
       May 28, 2018
    支持

    @sunny352787 caddy 文档太碎了
    fy
        3
    fy  
       May 28, 2018
    哇,资瓷,看着很棒。star 了
    zenio
        4
    zenio  
       May 28, 2018 via Android
    已 star
    vix
        5
    vix  
    OP
       May 28, 2018
    @sunny352787 caddy 知道,插件还真不知道。有时间的话折腾下。
    7654
        6
    7654  
       May 28, 2018
    上传看不到进度,局域网上传 500MB 文件卡住了
    点击文件块无反应
    vix
        8
    vix  
    OP
       May 28, 2018 via Android
    @7654 能贴个浏览器的 console 或者后台输出看看吗?
    7654
        9
    7654  
       May 28, 2018
    @vix #8 文件总计 2.22G 格式 7z,只上传了差不多 400MB

    console.trace()
    api_upload.js:165:12
    e/this.upload/<
    api_upload.js:165:12
    console.trace()
    api_upload.js:165:12
    e/this.upload/<
    api_upload.js:165:12
    console.trace()
    api_upload.js:165:12
    e/this.upload/<
    api_upload.js:165:12


    qs2018/05/28 13:56:40 upload.go:85: pform map[start:[406000000] len:[2000000] shareid:[hashid]]
    qs2018/05/28 13:56:40 upload.go:86: mform &{map[shareid:[hashid] start:[406000000] len:[2000000]] map[chunk:[0xc0421ca0a0]]}
    qs2018/05/28 13:56:40 worker.go:84: finish cost: 97232 usec
    qs2018/05/28 13:56:41 upload.go:84: form map[len:[2000000] shareid:[hashid] start:[408000000]]
    qs2018/05/28 13:56:41 upload.go:85: pform map[len:[2000000] shareid:[hashid] start:[408000000]]
    qs2018/05/28 13:56:41 upload.go:86: mform &{map[shareid:[hashid] start:[408000000] len:[2000000]] map[chunk:[0xc0421ca190]]}
    qs2018/05/28 13:56:41 worker.go:84: finish cost: 32660 usec
    qs2018/05/28 13:56:41 worker.go:84: finish cost: 1539 usec
    qs2018/05/28 13:56:41 upload.go:84: form map[shareid:[hashid] start:[410000000] len:[2000000]]
    qs2018/05/28 13:56:41 upload.go:85: pform map[shareid:[hashid] start:[410000000] len:[2000000]]
    qs2018/05/28 13:56:41 upload.go:86: mform &{map[shareid:[hashid] start:[410000000] len:[2000000]] map[chunk:[0xc04219e000]]}
    qs2018/05/28 13:56:41 worker.go:84: finish cost: 4021 usec
    qs2018/05/28 13:56:41 worker.go:84: finish cost: 9977 usec
    qs2018/05/28 13:56:41 worker.go:84: finish cost: 998 usec
    qs2018/05/28 13:56:41 worker.go:84: finish cost: 0 usec
    qs2018/05/28 13:56:41 worker.go:84: finish cost: 13204 usec
    qs2018/05/28 13:56:41 worker.go:84: finish cost: 7035 usec
    qs2018/05/28 13:57:00 worker.go:84: finish cost: 0 usec
    qs2018/05/28 13:58:14 worker.go:84: finish cost: 1025 usec
    qs2018/05/28 13:58:14 worker.go:84: finish cost: 4658 usec
    zenio
        10
    zenio  
       May 28, 2018 via Android
    提了个自动打开浏览器的 pr 😂 ok 的话 review 一下
    vix
        11
    vix  
    OP
       May 28, 2018 via Android
    @7654 根据 log 不能确定(笑哭),可能是网络问题。
    另外由于默认做了限速,可以试试改一下根目录下面 config.json 的 MaxUpBytesPerSec 和 MaxDownBytesPerSec 的值到 10000000 的样子,速战速决。
    fanyangyang
        12
    fanyangyang  
       May 28, 2018
    可以放出网址哦
    vix
        13
    vix  
    OP
       May 28, 2018
    @kefengong 已 merge.
    vix
        14
    vix  
    OP
       May 28, 2018
    @fanyangyang 主要是怕放上来最后成福利共享所了😅.
    eryuan
        15
    eryuan  
       May 28, 2018
    支持 已 star
    fanyangyang
        16
    fanyangyang  
       May 28, 2018
    @vix 怕被封的都放你那里,哈哈
    coolzilj
        17
    coolzilj  
       May 29, 2018
    原生的 mux, ratelimit, httpworker 全部都自己实现,就一个 jwt 外部依赖,老哥稳。代码规范,没有啥拼写错误,条理清晰,对新人来说是个不可多得的学习项目,强烈推荐,感谢开源,已 star~
    vix
        18
    vix  
    OP
       May 29, 2018 via Android
    @coolzilj 老铁过奖,自己也是想借着这个小项目学点东西。
    zhangneww
        19
    zhangneww  
       May 29, 2018
    7 楼被无视了,https://github.com/filebrowser/filebrowser 挺好的
    natforum
        20
    natforum  
       May 30, 2018
    大佬有没有考虑过接入 ipfs
    vix
        21
    vix  
    OP
       May 31, 2018 via Android
    @natforum 老铁这想法有点 6,我得先研究下。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2593 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 57ms · UTC 01:16 · PVG 09:16 · LAX 18:16 · JFK 21:16
    ♥ Do have faith in what you're doing.