基于代码仓库的图床

2020-03-10 21:45:14 +08:00
 imlinhanchao

只是一个偶然的想法,基于第三方网站的图床,如果网站改版,关停,所有传的图就全部消失了。那么是否有一种办法可以将图掌控在自己手上,而又无需额外的服务器空间呢?

由此,我便想到可以基于许多代码仓库都有的 Page 服务,绑定自己的域名,借助于其 API,将图片传到仓库中,开启 Page 服务,这样图片也就有了一个外链链接。若是以后要做迁移,也可以很方便的把仓库 clone 下来迁移,在重新映射域名,则可以保证之前的图链不会失效。

基于这样的想法,我开发了一个 npm 库 github-picbed。可以很方便的嵌入到 node 应用中,只要有一个开启了 Page 服务的仓库,就可以作为图床使用了。

但是,实践之后发现,GitHub 的图床速度实在不尽人意。因此,我又盯上了国内的 Coding 代码托管。

于是,又开发了 npm 库 coding-picbed。一样使用 Page 服务,另外,由于 Coding 仓库资源的 raw 地址不像 GitHub 被屏蔽,如果仓库有开启公开源代码,还可以使用 raw 地址做外链。

然后,我感觉使用库只是方便于开发,还是直接做成 API 甚至网页比较方便简易使用。于是,我又再进一步开发了 coding-picbed-api。可以方便搭建自己的图床 API。另外,其中有包含了一个 Demo 页面,可供测试 API。这里是一个已经部署好的,可以作为体验: http://picbed.librejo.cn

使用方式

  1. 新建 Coding 个人访问令牌


    权限需开启:project|project:depot|project:file
  2. 新建一个仓库,设定公开源代码或在「构建与部署」中的「静态网站」开启网站部署。
  3. 复制「个人访问令牌」和「仓库地址」,贴到 http://picbed.librejo.cn 中,然后把要上传的图片拖拽进去或粘贴进去就可以了。

最后,大家使用过程有任何问题,欢迎到 GitHub 来给我提 Issus ~

3982 次点击
所在节点    分享创造
22 条回复
liqingcan
2020-03-11 16:57:14 +08:00
@falcon05 在页面上对用户无感。无所谓吧。
abersheeran
2020-09-28 12:23:35 +08:00
……巧了,我多年前也写过一个现在还在运行 https://upload.abersheeran.com/image

源码在 https://github.com/Aber-s-practice/upload

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

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

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

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

© 2021 V2EX