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

2018-07-09 23:00:57 +08:00
 caola
网上有很多图床之类的,但少有可以存放并外链的,文本文件的 “床”,
于是 [ 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,
全部的请求直接在文件上,也不影响数据库性能。

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

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

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

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

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

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

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

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

@bigknife 细节问题。。。用五笔打出来的多按了个按键,其实平时一直把它当 chen 读音 [呲牙]

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/469418

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX