我的图床解决方案,超详细!

本文涉及的产品
对象存储 OSS,20GB 3个月
.cn 域名,1个 12个月
对象存储 OSS,恶意文件检测 1000次 1年
简介: 我的图床解决方案,超详细!

图床就是将你的本地图片上传到相关服务商或者个人服务器,然后获取图片对应的网络访问地址,使用者可以方便快速的将图片插入到文章中,后续图片二次使用、迁移、分享都会非常简单。


我之前常用的图床方案是使用Gitee的仓库来实现,我的博客[1]周刊[2]以及一些开源电子书都用的是Gitee


最近,Gitee的流量审查机制锁定了我的账户,于是我的历史图片全部都无法访问了,虽然有些无奈,但我在用的时候就做了心理准备,毕竟算是违规使用其仓库资源,所以接下来将详细说下我的图床替代方案选择之路。


我对图床的基础要求就两点:稳定&速度,所以不论免费收费我都会考虑,最终得到以下方案分享给大家:


  • Github + JsDelivr

  • OSS + CDN

  • 付费:腾讯云 COS

  • 免费:Backblaze + Cloudflare


  • VPS 自建

Github + JsDel

ivr

Github的图床思路和Gitee是一样的,但是就目前个人使用体验来说,Github的稳定性是更胜一筹的,所以我的图床一出问题,我就快速切换到这个方案应急。


配置起来也还是很方便(默认你会使用 Github),首先新建一个公开仓库:

1.jpg一般上传一张图片到仓库之后,就已经可以当做图床使用,如:


上面同一张图片,地址的变化大家可以都点进去看看,上面说的操作都是我人工将图片上传,但是实际操作中大可不必,有很多好用的工具来自动帮我们做这件事,这里我推荐两款工具:


  • PicGo[3]:一个用于快速上传图片并获取图片链接的跨平台工具

  • uPic[4]:功能和上面一样,纯 macOS 系统支持,所以在 mac 下面交互体验比上面流畅不少,还有对应移动端 APP

上面两款工具使用方式都是一样的,针对Github做图床都需要获取token供第三方图床工具使用。


点击token 获取链接[5],权限需要勾选repouser

2.jpg

随后在图床工具里面进行相关信息配置即可:

3.jpg

至此,Github + JsDelivr方案的配置使用介绍完毕,总的来说,这个方案还是比较推荐的,理由如下:


  • 快速方便:只需要建立仓库配置一下接口

  • 稳定,毕竟大厂商(但需要注意的是Github图片仓库过大的时候记得换仓库)

  • JsDelivr解决Github在国内访问慢以及流量问题

OSS + CDN


OSS(Object Storage Service)即对象存储服务,各大厂商都有对象存储服务,如腾讯的COS、阿里的OSS、华为云的OBS等。


如果你对图床的稳定性以及速度有比较高的要求,那么可以考虑这套方案,OSS的话,有免费的,也有付费的,CDN也是如此。


不过目前基本各大厂商都有免费额度,没有也没关系,我们博客访问量小的话每月基本上不花什么钱,我现在将笔记全部托管到COS且多平台同步,每月也才几毛钱。


腾讯云 COS


接下来我将用腾讯云COS&CDN服务为例,实现个人图床,其他厂商也是类似套路,就不过多介绍。


首先进入腾讯云 COS 存储桶列表[6],点击创建存储桶

4.jpg

需要注意的是访问权限,切记选择私有读写,不允许公共访问里面的文件,为的是恶意访问的时候能减少损失。按照上图配置完成后,直接下一步就创建成功了。


为了保证安全性,这里不建议使用根用户直接进行访问,我们可以创建一个子用户来做相关写入操作。


点击新建子用户[7],按照下图依次填写即可:


选择类型

5.png填写用户信息

6.png

需要进行验证才能继续。


设置用户权限

8.png

什么都不用选择,直接继续。


审阅信息和权限

10.png

完成后会显示该子用户的SecretIdSecretKey,将它们复制出来备用。


注:如果忘记保存,可前往用户列表->目标用户->API 密钥进行获取


为桶设置子账户


回到存储桶列表[8],点击之前创建的存储桶,点击左侧的权限管理-->存储桶访问权限,然后点击存储桶访问权限-->添加用户,子账号权限设置如下:

11.jpg

至此,图床算是配置完毕,打开图床工具,将子用户的SecretIdSecretKey和相关信息录入:

12.jpg

可随便上传一张照片进行测试,然后打开桶列表下面的文件列表,可看到上传的照片:

13.jpg

上传后图片的访问地址是:https://images-***.cos.ap-guangzhou.myqcloud.com/uPic/tCyEU0.png,但是为了防止恶意访问以及节省流量费所以我设置了私有访问,因此访问图片会提示Access Denied


最后直接开启CDN域名加速:

14.jpg

为了节省流量的费用,可以考虑在鉴权配置那设置缓存时间为一年,以及Referer名单限制访问源。


Backblaze + Cloudflare


这个方案有以下优势:


  • 每月前 10G 流量免费

  • Cloudflare 做 CDN 加速

  • 可自定义域名

开始前,你需要有以下条件:


  • 域名


  • Backblaze 账户

  • Cloudflare 账户: 按照网站提示接入域名即可

Backblaze B2[9] 是一个云存储解决方案,为什么选用他呢,是因为其前 10G 存储是完全免费的,这用于做图床是非常够用的。


请先注册一个账号(输入邮箱就行),然后点击Create a Bucket,创建一个存储桶:

15.jpg

填写名称,记得选择Public权限:

16.jpg为了让第三方软件可以使用backblaze,接下来需要获取Application Keys,操作如下:


  • 点击 App Keys

  • 点击 Application Keys

  • 填写信息进行创建
  • 17.jpg
  • 当密钥创建成功,记得保存下来,因为页面关闭后就自动不再展示。

为了获取桶域名,点击Browse Files直接上传一张图片,上传成功后直接点击图片,会看到如下信息:

18.jpg

提取其中Friendly URL显示的域名信息,比如我这里是:

https://f***.****.com/,然后在 Cloudflare 解析:

19.jpg

如果上一步没有添加成功,直接在域名下面的DNS设置解析:

20.jpg

接下来点击左侧的SSL/TLS,设置**完全(严格)**模式:

21.jpg

最后在规则页面设置如下两个规则:

22.jpg

还有一些配置需要在Backblaze进行设置,由于其默认不缓存,我们要先将Bucket SettingsBucket Info添加以下配置:

{"cache-control": "max-age=43200000"}

然后在CORS Rules里面设置Share everything in this bucket with all HTTPS origins即可。


最后,你就拥有了一个自定义域名的免费图床:

# 地址形式如下
https://img.turingark.com/file/howie-img/wechat_howie.png

你也同样可以用uPic图床工具进行上传:

23.jpg

VPS 自建


如果你手头有服务器,那么可以考虑自建图床服务,市面上可选的图床工具还是有不少的,这里我选择lsky-pro[10]进行尝试,探索自建图床的可行性。


其实开源图床项目挺多的,目前看lsky-pro项目更新以及功能都算前列,而且可以选择将图片上传到腾讯云 COS 或者 b2,因此直接选用其进行测试。


部署上手使用非常简单,直接用Docker 部署[11]即可,具体流程参考这个项目即可,最终效果如下:

24.jpg

25.jpg

可以设置登录才能上传,做到权限管控。


可以设定图片存储在下图任一位置:

26.jpg

经过测试,使用起来还是非常方便的,最后正式使用的话建议给自己域名套上一层 CDN,这块可由你自己选择把控。

相关实践学习
Serverless极速搭建Hexo博客
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
相关文章
|
5月前
|
存储 JavaScript 网络架构
【开源图床】使用Typora+PicGo+Github+CDN搭建个人博客图床
【开源图床】使用Typora+PicGo+Github+CDN搭建个人博客图床
277 3
|
1月前
|
存储 PHP 对象存储
开源免费的图床源码整理汇总-个人自用图床相册程序推荐
图床,也可以称之为相册,即存放图片的地方。 图床与普通的相册不同,图床上传的图片可以作为外链使用,也可以作为公共图片访问使用。除了支持匿名形式访问外,还支持多用户注册与登录,管理员批量管理审核等,当然高级一点功能就是自动审核、AI识别等。 图床需求不如博客建站程序那么,算是一个小众的需要,所以基本上没有什么大规模的免费图床程序。比较受欢迎的Chevereto,已经宣传转为了付费产品,虽然Github上的Chevereto还可以继续下载使用,但是作者已经铁了心要主推他的Chevereto Pro版,免费版的命运走向何方也未知。 本篇文章就来搜集整理一下开源免费的图床源码,由于很多源码都是个人开发
61 0
|
5月前
|
移动开发 API PHP
EasyImage2.0 简单图床开源
支持API 支持仅登录后上传 支持设置图片质量 支持压缩图片大小 支持文字/图片水印 支持设置图片指定宽/高 支持上传图片转换为指定格式 支持限制最低宽度/高度上传 支持上传其他文件格式 在线管理图片 支持网站统计 支持设置广告 支持图片鉴黄 支持自定义代码 支持上传IP黑白名单 支持上传日志IP定位 支持限制日上传次数 支持创建仅上传用户 对于安装环境要求极低 对于服务器性能要求极低 理论上支持所有常见格式 更多功能支持请安装尝试···
43 3
|
存储 应用服务中间件 数据库
自建私人图床方案:使用Cpolar+树洞外链轻松部署超轻量级图床,实现高效图片存储
自建私人图床方案:使用Cpolar+树洞外链轻松部署超轻量级图床,实现高效图片存储
|
5月前
|
存储 编解码 弹性计算
阿里云网盘与相册开发版提供了丰富的功能和全面的加速解决方案
阿里云网盘与相册开发版提供了丰富的功能和全面的加速解决方案【1月更文挑战第13天】【1月更文挑战第63篇】
60 2
|
5月前
|
应用服务中间件 PHP 数据库
【搭建私人图床】使用LightPicture开源搭建图片管理系统并远程访问
现在的手机越来越先进,功能也越来越多,而手机的摄像功能也愈发强大,所拍摄的照片越来越清晰,但也让数码照片的体积暴涨。对于像笔者这样经常拍照的人来说,手机容量经常告警,因此笔者将家里的电脑改造成能随时上传下载和访问的图片服务器。今天,笔者就为大家展示,如何使用Cpolar内网穿透与Lightpicture组合,将个人电脑改造成能随时上传、下载或访问,并能生成外链的图床服务器。
|
11月前
|
NoSQL 关系型数据库 MySQL
图床项目详解-1
图床项目详解
119 0
|
11月前
|
NoSQL 关系型数据库 MySQL
图床项目详解-3
图床项目详解
58 0
|
11月前
|
NoSQL 关系型数据库 MySQL
图床项目详解-2
图床项目详解
98 0
|
存储 编译器 对象存储
博客如何注重内容本身,那就看看图床搭建,PicGo+typora+阿里云OSS
1. 图床的介绍和markdown编译器介绍 图床是什么? 首先,图床在我们眼里一眼看上去很陌生,其实它很简单理解。你也可以点击这个图床链接看看图床。实际上,图床就是一个储存照片的服务器。
269 0