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

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

  •  1
     
  •   vix ·
    ihexxa · May 28, 2018 · 4943 views
    This topic created in 3089 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
    sunny352787
    May 28, 2018
    1
    caddy 了解一下,有插件
    missdeer
    missdeer
    May 28, 2018
    2
    支持

    @sunny352787 caddy 文档太碎了
    fy
    fy
    May 28, 2018
    3
    哇,资瓷,看着很棒。star 了
    zenio
    zenio
    May 28, 2018 via Android
    4
    已 star
    vix
    vix
    OP
    May 28, 2018
    5
    @sunny352787 caddy 知道,插件还真不知道。有时间的话折腾下。
    7654
    7654
    May 28, 2018
    6
    上传看不到进度,局域网上传 500MB 文件卡住了
    点击文件块无反应
    vix
    vix
    OP
    May 28, 2018 via Android
    8
    @7654 能贴个浏览器的 console 或者后台输出看看吗?
    7654
    7654
    May 28, 2018
    9
    @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
    zenio
    May 28, 2018 via Android
    10
    提了个自动打开浏览器的 pr 😂 ok 的话 review 一下
    vix
    vix
    OP
    May 28, 2018 via Android
    11
    @7654 根据 log 不能确定(笑哭),可能是网络问题。
    另外由于默认做了限速,可以试试改一下根目录下面 config.json 的 MaxUpBytesPerSec 和 MaxDownBytesPerSec 的值到 10000000 的样子,速战速决。
    fanyangyang
    fanyangyang
    May 28, 2018
    12
    可以放出网址哦
    vix
    vix
    OP
    May 28, 2018
    13
    @kefengong 已 merge.
    vix
    vix
    OP
    May 28, 2018
    14
    @fanyangyang 主要是怕放上来最后成福利共享所了😅.
    eryuan
    eryuan
    May 28, 2018
    15
    支持 已 star
    fanyangyang
    fanyangyang
    May 28, 2018
    16
    @vix 怕被封的都放你那里,哈哈
    coolzilj
    coolzilj
    May 29, 2018
    17
    原生的 mux, ratelimit, httpworker 全部都自己实现,就一个 jwt 外部依赖,老哥稳。代码规范,没有啥拼写错误,条理清晰,对新人来说是个不可多得的学习项目,强烈推荐,感谢开源,已 star~
    vix
    vix
    OP
    May 29, 2018 via Android
    18
    @coolzilj 老铁过奖,自己也是想借着这个小项目学点东西。
    zhangneww
    zhangneww
    May 29, 2018
    19
    7 楼被无视了,https://github.com/filebrowser/filebrowser 挺好的
    natforum
    natforum
    May 30, 2018
    20
    大佬有没有考虑过接入 ipfs
    vix
    vix
    OP
    May 31, 2018 via Android
    21
    @natforum 老铁这想法有点 6,我得先研究下。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3623 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 87ms · UTC 05:38 · PVG 13:38 · LAX 21:38 · JFK 00:38
    ♥ Do have faith in what you're doing.