撸了个文本文件的上传及外链分享的系统: 263.info - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
caola
V2EX    分享创造

撸了个文本文件的上传及外链分享的系统: 263.info

  •  
  •   caola 2018-07-09 23:00:57 +08:00 4716 次点击
    这是一个创建于 2702 天前的主题,其中的信息可能已经有所发展或是发生改变。
    网上有很多图床之类的,但少有可以存放并外链的,文本文件的 “床”,
    于是 [ https://www.263.info ] 就孕育而生了 ,
    方便上传一些 js、css、svg、xml 等等的文本文件,可用于外链(最大为 1MB ),
    默认访问请求的响应内容类型一率返回 text/plain ,
    但可以自行在生成的链接后加上后缀,如 .js (仅支持 js/css/svg/xml/json )

    文件在 90 天内无访问请求的,就会被删除,
    实现方法是根据每天一次的日志汇总进行分析,对比数据库里 key 的最后更新时间,
    存在就更新为最新的时间,如果超过 90 天则删除 key 同时删除对应的文件。

    最初是想用 redis 来保存 key,并设置 TLL 过期时间后根据 redis 的过期删除回调通知,再删除文件
    但考虑到内存有点紧张了,就改为 mysql 来保存 key,
    全部的请求直接在文件上,也不影响数据库性能。

    希望能对一些有需求的人所帮助吧 !!!
    16 条回复    2018-07-18 21:33:49 +08:00
    Mitt
        1
    Mitt  
       2018-07-10 06:55:46 +08:00 via iPhone
    其实都是伪需求
    Showfom
        2
    Showfom  
    PRO
       2018-07-10 07:49:10 +08:00 via iPhone
    @Mitt 其实你是伪回复
    Mitt
        3
    Mitt  
       2018-07-10 08:08:05 +08:00 via iPhone
    @Showfom 这类其实图片算是可以理解的,但是 js css 这类的如果真的有需求为什么不用 oss,还免费送容量和流量,这要是万一掉了网站不就直接挂了,毕竟能有这种托管需求的肯定不会说我只是临时放一下而已,肯定是拿来当 cdn 用的
    cname
        4
    cname  
       2018-07-10 08:54:09 +08:00 via Android
    应用场景或者说解决了什么需求?
    caola
        5
    caola  
    OP
       2018-07-10 10:42:26 +08:00
    @Mitt #3 至于稳定性呢,虽然我不敢说和各大 oss 厂商比,但是也至少使用 2 个节点来服务。

    @onionnews #4 我最初是为自己的客户服务的,使用的确实不多,占用不了多少资源,所以现在就当是公益服务于大众
    nulIptr
        6
    nulIptr  
       2018-07-10 10:57:06 +08:00
    文本的话为啥不用 gayhub 这种。。。。
    likuku
        7
    likuku  
       2018-07-10 12:27:27 +08:00 via iPhone
    若有人恶意上传点“违规”文件,再举报下,分分钟就凉了吧
    caola
        8
    caola  
    OP
       2018-07-10 13:02:03 +08:00
    @nulIptr #6 不是每个人都会用 github,比如非码农人士

    @likuku #7 这个问题有考虑过,无外乎是检查内容的关键词,但现在暂时没有做,不过可能到时会添加一个 “ Content-Disposition:attachment ” 的响应头,在引用方面是没有任何影响的, 但直接访问时浏览器会默认为下载,而不是直接显示文本的内容
    BruceYuan
        9
    BruceYuan  
       2018-07-10 14:57:42 +08:00 via iPhone   1
    类似于 ubuntu paste 吗?我听你描述还是挺有用的
    baobao1270
        10
    baobao1270  
       2018-07-10 16:25:08 +08:00 via Android
    相当于 gist 吧,要不再弄个代码高亮
    Tink
        11
    Tink  
    PRO
       2018-07-12 09:06:37 +08:00 via iPhone
    类似于 paste ?
    OfficialYoungX
        12
    OfficialYoungX  
       2018-07-13 14:51:34 +08:00
    提两点建议:
    - 底部的 hover 二维码有 bug,我想资助都难;
    - 在线浏览上传的问价似乎有编码问题,中文无法正确显示;
    嗯。
    caola
        13
    caola  
    OP
       2018-07-13 18:38:06 +08:00
    @OfficialYoungX #12 二维码这个问题确实注意到了,第一次鼠标经过显示不正常,要第二次经过才正常显示。
    有时间就看下这个 bootstrap4 的插件为什么会出现这样的问题。

    服务器默认的响应头是不指定编码的,而多数浏览器默认的以 GBK 编码显示。
    然而你的原文件是无 BOM 的 UFT-8,那么浏览器就会以 GBK 来显示造成中文乱码。

    如果你是用于网站上的外链引用的话,可以在 link 和 script 添加上 charset 的标签,虽然 html5 不推荐这样做

    到时会考虑 像添加 .js 后缀一样,再添加一个编码的后缀吧
    nl101531
        14
    nl101531  
       2018-07-16 08:19:00 +08:00
    支持楼主,这个需求我也有,不过我的更多是 md 文档分享,自己也撸了一个。

    https://github.com/mrdear/temp-file-viewer
    bigknife
        15
    bigknife  
       2018-07-18 17:18:19 +08:00
    视沉余存储而延长 是什么? 应该是“冗余”吧
    caola
        16
    caola  
    OP
       2018-07-18 21:33:49 +08:00
    @BruceYuan @baobao1270 @Tink 纯属于文本文件的存放(可用于外链),上传前文本是什么就原样输出,包括文件的 hash 值都不会被改变。

    @nl101531 #14 你的也不错,功能有类似的地方,但我的主要提供用于外链引用的 js/css/xml 等,当然也可以是其他任何文本文件。

    @bigknife 细节问题。。。用五笔打出来的多按了个按键,其实平时一直把它当 chen 读音 [呲牙]
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3409 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 00:42 PVG 08:42 LAX 16:42 JFK 19:42
    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