V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
caola
V2EX  ›  分享创造

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

  •  
  •   caola · 2018-07-09 23:00:57 +08:00 · 4260 次点击
    这是一个创建于 2338 天前的主题,其中的信息可能已经有所发展或是发生改变。
    网上有很多图床之类的,但少有可以存放并外链的,文本文件的 “床”,
    于是 [ 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  
       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 用的
    onionnews
        4
    onionnews  
       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  
       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   ·   实用小工具   ·   991 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 21:42 · PVG 05:42 · LAX 13:42 · JFK 16:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.