我的图床解决方案,超详细!
图床就是将你的本地图片上传到相关服务商或者个人服务器,然后获取图片对应的网络访问地址,使用者可以方便快速的将图片插入到文章中,后续图片二次使用、迁移、分享都会非常简单。
我之前常用的图床方案是使用Gitee
的仓库来实现,我的博客[1]、周刊[2]以及一些开源电子书都用的是Gitee
。
最近,Gitee
的流量审查机制锁定了我的账户,于是我的历史图片全部都无法访问了,虽然有些无奈,但我在用的时候就做了心理准备,毕竟算是违规使用其仓库资源,所以接下来将详细说下我的图床替代方案选择之路。
我对图床的基础要求就两点:稳定&速度,所以不论免费收费我都会考虑,最终得到以下方案分享给大家:
Github + JsDelivr
OSS + CDN
付费:腾讯云 COS
免费:Backblaze + Cloudflare
VPS 自建
✨ Github + JsDelivr
Github
的图床思路和Gitee
是一样的,但是就目前个人使用体验来说,Github
的稳定性是更胜一筹的,所以我的图床一出问题,我就快速切换到这个方案应急。
配置起来也还是很方便(默认你会使用 Github),首先新建一个公开仓库:
一般上传一张图片到仓库之后,就已经可以当做图床使用,如:
图片上传后仓库地址:https://github.com/howie6879/oss/blob/master/images/wechat_howie.png
其他用户可访问地址:https://raw.githubusercontent.com/howie6879/oss/master/images/wechat_howie.png
引入 JsDelivr 加速地址:https://cdn.jsdelivr.net/gh/howie6879/oss/images/wechat_howie.png
上面同一张图片,地址的变化大家可以都点进去看看,上面说的操作都是我人工将图片上传,但是实际操作中大可不必,有很多好用的工具来自动帮我们做这件事,这里我推荐两款工具:
PicGo[3]:一个用于快速上传图片并获取图片链接的跨平台工具
uPic[4]:功能和上面一样,纯 macOS 系统支持,所以在 mac 下面交互体验比上面流畅不少,还有对应移动端 APP
上面两款工具使用方式都是一样的,针对Github
做图床都需要获取token
供第三方图床工具使用。
点击token 获取链接[5],权限需要勾选repo
和user
:
随后在图床工具里面进行相关信息配置即可:
至此,Github + JsDelivr
方案的配置使用介绍完毕,总的来说,这个方案还是比较推荐的,理由如下:
快速方便:只需要建立仓库配置一下接口
稳定,毕竟大厂商(但需要注意的是
Github
图片仓库过大的时候记得换仓库)JsDelivr
解决Github
在国内访问慢以及流量问题
OSS + CDN
OSS
(Object Storage Service)即对象存储服务,各大厂商都有对象存储服务,如腾讯的COS
、阿里的OSS
、华为云的OBS
等。
如果你对图床的稳定性以及速度有比较高的要求,那么可以考虑这套方案,OSS
的话,有免费的,也有付费的,CDN
也是如此。
不过目前基本各大厂商都有免费额度,没有也没关系,我们博客访问量小的话每月基本上不花什么钱,我现在将笔记全部托管到COS
且多平台同步,每月也才几毛钱。
腾讯云 COS
接下来我将用腾讯云COS&CDN
服务为例,实现个人图床,其他厂商也是类似套路,就不过多介绍。
首先进入腾讯云 COS 存储桶列表[6],点击创建存储桶:
需要注意的是访问权限,切记选择私有读写,不允许公共访问里面的文件,为的是恶意访问的时候能减少损失。按照上图配置完成后,直接下一步就创建成功了。
为了保证安全性,这里不建议使用根用户直接进行访问,我们可以创建一个子用户来做相关写入操作。
点击新建子用户[7],按照下图依次填写即可:
选择类型:
填写用户信息:
需要进行验证才能继续。
设置用户权限:
什么都不用选择,直接继续。
审阅信息和权限:
完成后会显示该子用户的SecretId和SecretKey,将它们复制出来备用。
注:如果忘记保存,可前往用户列表->目标用户->API 密钥进行获取
为桶设置子账户:
回到存储桶列表[8],点击之前创建的存储桶,点击左侧的权限管理-->存储桶访问权限
,然后点击存储桶访问权限-->添加用户
,子账号权限设置如下:
至此,图床算是配置完毕,打开图床工具,将子用户的SecretId和SecretKey和相关信息录入:
可随便上传一张照片进行测试,然后打开桶列表下面的文件列表,可看到上传的照片:
上传后图片的访问地址是:https://images-***.cos.ap-guangzhou.myqcloud.com/uPic/tCyEU0.png
,但是为了防止恶意访问以及节省流量费所以我设置了私有访问,因此访问图片会提示Access Denied
。
最后直接开启CDN域名
加速:
为了节省流量的费用,可以考虑在鉴权配置那设置缓存时间为一年,以及Referer
名单限制访问源。
Backblaze + Cloudflare
这个方案有以下优势:
每月前 10G 流量免费
Cloudflare 做 CDN 加速
可自定义域名
开始前,你需要有以下条件:
域名
Backblaze 账户
Cloudflare 账户: 按照网站提示接入域名即可
Backblaze B2[9] 是一个云存储解决方案,为什么选用他呢,是因为其前 10G 存储是完全免费的,这用于做图床是非常够用的。
请先注册一个账号(输入邮箱就行),然后点击Create a Bucket
,创建一个存储桶:
填写名称,记得选择Public
权限:
为了让第三方软件可以使用backblaze
,接下来需要获取Application Keys
,操作如下:
点击 App Keys
点击 Application Keys
填写信息进行创建
当密钥创建成功,记得保存下来,因为页面关闭后就自动不再展示。
为了获取桶域名,点击Browse Files
直接上传一张图片,上传成功后直接点击图片,会看到如下信息:
提取其中Friendly URL
显示的域名信息,比如我这里是:https://f***.****.com/
,然后在 Cloudflare
解析:
如果上一步没有添加成功,直接在域名下面的DNS
设置解析:
接下来点击左侧的SSL/TLS
,设置**完全(严格)**模式:
最后在规则页面设置如下两个规则:
还有一些配置需要在Backblaze
进行设置,由于其默认不缓存,我们要先将Bucket Settings
的Bucket 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
图床工具进行上传:
VPS 自建
如果你手头有服务器,那么可以考虑自建图床服务,市面上可选的图床工具还是有不少的,这里我选择lsky-pro[10]进行尝试,探索自建图床的可行性。
其实开源图床项目挺多的,目前看
lsky-pro
项目更新以及功能都算前列,而且可以选择将图片上传到腾讯云 COS 或者 b2,因此直接选用其进行测试。
部署上手使用非常简单,直接用Docker 部署[11]即可,具体流程参考这个项目即可,最终效果如下:
可以设置登录才能上传,做到权限管控。
可以设定图片存储在下图任一位置:
经过测试,使用起来还是非常方便的,最后正式使用的话建议给自己域名套上一层 CDN,这块可由你自己选择把控。
说明
文中提到的方案都是笔者亲自试验踩坑记录而成,基于稳定&速度这两个前提,因此不考虑第三方图床工具,基本上是借用成熟的服务进行图床搭建,当前应该算是基本覆盖了市面上的图床方案,当然,若有更好的方案欢迎各位留言补充。
若非要我推荐一个快速简单可用的方案,我会选择Github + JsDelivr,如果想自定义域名的话,我推荐Backblaze + Cloudflare,如果想一劳永逸且有钱,那就直接上大厂的 OSS 服务即可。
PS: 如果想交流图床这块的解决方案,公众号右下角有我微信,也可以直接搜索【Howie6879】加我。
本文相关参考资料如下:
如何使用腾讯云 COS+CDN 搭建一个属于自己的图床[12]
Free Image Hosting With Cloudflare Transform Rules and Backblaze B2[13]
使用 Backblaze B2 和 Cloudflare Workers 搭建免费的自定义域名图床[14]
参考资料
[1]
我的博客: https://www.howie6879.cn/
[2]
周刊: https://weekly.howie6879.cn/
[3]
PicGo: https://github.com/Molunerfinn/PicGo
[4]
uPic: https://github.com/gee1k/uPic
[5]
token获取链接: https://github.com/settings/tokens/new
[6]
腾讯云COS存储桶列表: https://console.cloud.tencent.com/cos/bucket
[7]
新建子用户: https://console.cloud.tencent.com/cam/user/create
[8]
存储桶列表: https://console.cloud.tencent.com/cos/bucket
[9]
Backblaze B2: https://www.backblaze.com/b2/cloud-storage.html
[10]
lsky-pro: https://github.com/lsky-org/lsky-pro
[11]
Docker部署: https://github.com/HalcyonAzure/lsky-pro-docker
[12]
如何使用腾讯云COS+CDN搭建一个属于自己的图床: https://r2wind.cn/articles/20211214.html
[13]
Free Image Hosting With Cloudflare Transform Rules and Backblaze B2: https://www.backblaze.com/blog/free-image-hosting-with-cloudflare-transform-rules-and-backblaze-b2/
[14]
使用 Backblaze B2 和 Cloudflare Workers 搭建免费的自定义域名图床: https://blog.meow.page/archives/free-personal-image-hosting-with-backblaze-b2-and-cloudflare-workers/
我的图床解决方案,超详细!相关推荐
- maven配置阿里云_阿里云OSS PicGo 配置图床教程 超详细
阿里云OSS和PicGo配置图床教程 超详细 废话不多说,直接开始 购买阿里云OSS服务 登录阿里云 打开侧边栏,选择对象存储OSS,如下图: 对象存储界面右部选择创建Bucket,如下图所示: 之后 ...
- 阿里云OSS PicGo 配置图床教程 超详细
阿里云OSS和PicGo配置图床教程 超详细 废话不多说,直接开始 购买阿里云OSS服务 登录阿里云 打开侧边栏,选择对象存储OSS,如下图: 对象存储界面右部选择创建Bucket,如下图所示: 之后 ...
- Markdown写作中的图床解决方案(基于七牛云、PicGo)
在日常的Markdown写作中,使用图片是必不可少的,所以靠谱的图片存储服务和上传工具显得格外重要.图片存储上我一直使用七牛,个人用户拥有10GB的免费存储空间,并且拥有很成熟易用的图片处理引擎,可以 ...
- 图床相关小全集 + 阿里云OSS+PicGO+Typora的图床解决方案不支持图片的中文命名
秉着浪费时间就是浪费生命的原则,先说结论: "图床+PicGo+Typora" 之图床推荐:① 免费图床,推荐Bilibili图床:有备案域名的话,推荐七牛云图床.② 愿意付费的话 ...
- 数字孪生场景、代码即开即用 | 图观引擎 超详细功能范例演示
数字孪生已经从一项前沿技术,演变成为各行各业数字化转型的必选项. 过去想要构建数字孪生应用,要面对视觉设计.三维底座构建.代码开发.数据对接.部署联调等一系列复杂工作.不仅要了解复杂的数学基础知识.底 ...
- 甘特图制作_如何用Excel快速制作甘特图?(超详细!)
甘特图作为现代项目管理中一项重要的管理工具,它能够帮助你考虑资源.成本等项目中重要的元素,并且能够通过图形直观的观察到项目中所要完成的任务.开始与结束时间,每项任务所需时间,某项任务在某个时间段内完成 ...
- 高并发解决方案 超详细!!!
高并发解决方案 1. 高并发和大流量解决方案 高并发解决方案案例 流量优化:防盗链处理 前端优化:减少HTTP请求,合并css或js,添加异步请求,启用浏览器缓存和文件压缩,CDN加速,建立独立图片服 ...
- Microsoft SQL Server 2019 下载、安装及Java JDBC配置连接数据库(多图详解 超详细)
一.下载 下载链接Microsoft SQL Server 二.安装 1.找到刚刚下载的文件,双击打开后,选择基本并接受 2.选择接受 3.选择安装位置,并点击安装,然后等待下载安装完成 4.正在安装 ...
- 为您带来摹客iDoc这款PS自动标注,一键切图神器的超详细教程!速看!
摹客iDoc中文版是一款适用于ps的自动标注,一键切图神器,通过摹客iDoc PS插件,可以上传PS设计稿以进行标记切图等.摹客iDoc插件提供了自动标注切图的功能,让团队协作设计更加简单.而且这款插 ...
最新文章
- Make GNN Great Again:图神经网络上的预训练和自监督学习
- JavaScript对象继承方式
- python红色_python把红玫瑰变成蓝色女巫,将,红色,转化,为,蓝色妖姬
- openmv串口数据 串口助手_Qt小项目之串口助手控制LED
- java jconsole_java中jconsole命令的学习
- 信息学奥赛C++语言:换钱
- Excel数据导入数据库(Java)
- 2019快手内容报告重磅发布:日活突破3亿 点赞量超3500亿
- 简述使jdbc连接mysql数据库,关于JDBC的六个步骤
- 创建自定义主机头的网站集
- Hadoop伪分布式搭建(本人新手,欢迎大家多多指导和关照)
- JavaScript文档对象模型document对象获取自定义属性值和设置移除自定义属性(5)
- 艾伟_转载:VS2008连接SQL Server数据库文件出错的解决方案
- 计算机主机五大结构,计算机由哪五大部分组成?
- CAD:计算三角形的外接圆圆心
- 计算机网络文化基础心得体会,提高计算机文化基础教学效果的几点心得
- 网红漏洞“致远OA系统上的GetShell漏洞”详解
- cygwin安装配置apt-cyg工具
- CSDN插件还能画图、加速GitHub下载?分享几个插件给你
- 稀疏数组(golang实现)