图床
图床
目录
[toc]
为什么要使用图床
对于写博客的朋友们来讲,图床这个东西一定不会陌生,而且在一定程度上也给大家造成过一定困扰。
对于不清楚这个东西的朋友,我就在这儿大概说一下图床是个啥东西。所谓图床,其实可以就相当于我们手机上的相册,不过他是在线的,而且是对大家开放的,大家都可以访问查看,但是编辑删除这些功能仅限于拥有者,就相当于用百度云分享的公开照片,你可以查看,也可以下载下来编辑,但是拥有权还是属于分享者。
那你可能会疑惑,那这个东西和写博客的我们有啥关系呢?
你想想,我们写博客,是不是有很多图片需要插入,我们这些博客要保留在本地的时候你可以预览到图片,但一旦你要把它发布到网上,这时候问题来了!发现图片上传失败,那是因为你本地的图片都是存在本地的,平台不会自动给你上传,那这个时候就凸显出图床的重要性了。当然了,如果你是直接在平台进行编辑,那着一点就不用担心了,基本平台都会自动给你上传到它自己的服务器。
有了图床,我们在本地写好博客之后,就能够任意复制到其他平台,不用担心图片丢失问题了。
- md的核心就是解决图床问题,如果解决了图床问题,不管用typora还是ob来维护笔记核心数据,就会特别香;
- 还是那句话,核心笔记数据必须自主可控,不绑定任何一家笔记应用。
需求背景
1、解决自己typora md图床问题
2、解决自己博客文章图床问题
常见图床搭建方式
1、本地图床
存放图床的目录可用坚果云
或百度云同步空间
来同步数据,以保证其数据安全性。
D:\我的坚果云\LocalImages
D:\BaiduSyncdisk\LocalImgs
1.typora+相对路径
1、优点
相对路径的md文件可以方便进行传播;
方便静态站点工具渲染md(例如docusaurus支持相对路径的md文档的渲染);
2、缺点
不是很利于md文件的维护;
且会造成某些文件的重复使用,导致存储空间增大;
2.typora+绝对路径
个人更推荐使用typora+绝对路径方式,例如自己就是将本地图床路径设置为
D:\BaiduSyncdisk\LocalImgs\图片
,这样的话,更利于维护自己的笔记数据;使用绝对路径的话,就可以轻松修改md文件名称了;(这个还是非常方便的)如果使用相对路径,每次修改md文件名称后,还需要修改存放图片目录的名称,然后再批量替换md文件中图片的路径。
https://bucket-hg.oss-cn-shanghai.aliyuncs.com/img/
D:\BaiduSyncdisk\LocalImgs\image-20220530200627632.png
注意:不管是坚果云还是百度网盘同步空间,如果使用其本地图床,那么在手机端是无法正常显示md里图片的……,因此后面才需要配置公网图床。
2、oss图床
阿里云oss&腾讯云cos&七牛云方式搭建
- 问题:如果自己后续md图床数据量增大,那么oss计费也是比较贵的;
- 问题:要解决oss被恶意刷流量问题?
防盗链??
鉴权??
限制refer??
设置白名单??
3、github图床
问题:当gitee/github里的图片数据量很大时,无法pull/push数据,并且网速也很慢,不推荐这种方法;
4、其它方式
案例:Lsky Pro(兰空图床)
2023年11月11日 群辉大佬
2024年3月17日收藏
Lsky Pro
参考文章
https://www.ywsj365.com/archives/docker-da-jian-yi-ge-shu-yu-zi-ji-de-tu-chuang
案例: 初柒工坊图床
- 鸣谢:初柒工坊图床免费提供图片存储服务
案例:EasyImage图床
2023年9月8日记录
搭建参考链接
https://blog.csdn.net/qq_24694139/article/details/132425616
https://zhuanlan.zhihu.com/p/648359245
https://post.smzdm.com/p/akk76n7k/
案例:群晖方式
==使用群辉nas搭建图床推荐吗==
gpt-2023.8.23回答
使用群晖 NAS 搭建图床是一个不错的选择。群晖 NAS(Synology NAS)提供了一个易于使用的操作界面和丰富的应用程序生态系统,使您可以轻松地搭建自己的私有图床。
以下是使用群晖 NAS 搭建图床的一般步骤:
- 设置群晖 NAS:首先,您需要购买并设置好群晖 NAS。确保您已配置网络连接和访问权限。
- 安装应用程序:在群晖 NAS 的应用商店中找到适合的图床应用程序,例如 Photo Station、Moments 等。根据应用程序的说明进行安装和设置。
- 上传图片:一旦安装和设置好应用程序,您可以通过电脑、手机或其他设备上传图片到群晖 NAS 上的图床应用程序中。
- 获取图片链接:上传成功后,应用程序会生成每张图片的唯一链接。您可以从图床应用程序中获取这些链接,用于在 Markdown 或其他地方引用图片。
- 引用图片:将生成的图片链接插入到您的 Markdown 文件中或任何需要引用图片的地方。
使用群晖 NAS 搭建图床的好处是,您可以轻松地将图片存储在自己的本地服务器上,完全掌握数据的安全与隐私。此外,群晖 NAS 还提供了许多其他功能,如备份、文件共享等,使其成为一个功能强大的家庭网络存储解决方案。
希望这个建议对您有帮助!如果您有其他问题,请随时提问。
==那么它的缺点呢==
gpt-2023.8.23回答
尽管群晖 NAS 拥有多个优点,但也有一些潜在的缺点需要考虑:
- 成本较高:相对于其他图床解决方案,群晖 NAS 的成本较高。它包括 NAS 硬件设备的购买成本以及可能需要付费的应用程序和插件。
- 技术要求:搭建和管理一个群晖 NAS 需要一定的技术知识。您需要了解一些网络配置、存储管理和应用程序设置方面的基础概念。
- 面向家庭或小团队:群晖 NAS 的设计初衷是为家庭用户或小型办公室提供文件存储和共享功能,因此其性能和扩展性可能有限。对于大型企业或需要处理大量数据和高并发访问的场景,可能需要更专业的存储解决方案。
- 依赖网络连接:群晖 NAS 通常需要稳定的网络连接才能正常工作。如果遇到网络故障或互联网连接问题,可能会对访问和管理图床造成影响。
- 电力消耗和噪音:由于群晖 NAS 是一个运行24/7的设备,它可能会产生一定的电力消耗和噪音。这需要考虑到设备的放置位置和环境。
这些缺点并不意味着群晖 NAS 不是一个好的选择,而是需要根据您的具体需求和预算来评估。如果您需要更高级的功能和可扩展性,或者对技术方面感到不太熟悉,可能需要考虑其他图床解决方案或咨询专业人士的建议。
希望这些信息能对您有所帮助!如果您有其他问题,请随时提问。
案例:utools
图床管理:https://u.tools/plugins/detail/图床+Plus/?c=z9ojhrcx3m
案例:二丫图床方案
最佳方案
购买一台云服务器和一个域名,部署Nginx,然后利用云服务器的nginx提供md图床服务。同时利用rsync服务定期同步图床数据到本地进行备份,稳得一b。
云服务器:部署nginx服务(提供图床服务)
typora:作为本地md编辑软件(当然用ob也行哦)
picgo:作为md里图片上传工具
本方案优点:
- 图床使用域名做解析,即使以后换ecs的公网ip后,我们只需要迁移图片数据就行,md元数据是不用动的,很丝滑。
- 自己也利用rsync会每天定时从linux同步数据到本地windows PC,简直nice。==(rsync服务、nginx服务部署很简单,请放心)==
- 解决了md图床问题,那么使用typora/ob维护笔记数据,体验真的飞起哦。另外,也一起解决了博客图床问题哦,完美。
如何防护
警告
以下内容仅供参考!
自己利用网站服务器的nginx的某个目录/images来作为md图床使用,如何防止别人利用爬虫程序来爬取我网站图床里/images下的所有图片呢?
gpt内容:
防止爬虫爬取网站/images
目录下的图片,你可以采取以下几种措施来保护你的Nginx服务器上的图床:
修改 robots.txt 文件
- 在你的网站根目录下创建或修改
robots.txt
文件,使用Disallow
语句来告诉遵守规则的爬虫不要爬取/images
目录。
plaintextUser-agent: * Disallow: /images/
但是请注意,不是所有的爬虫都会遵守
robots.txt
的规则,恶意爬虫通常会忽视这个文件。NOTE
但是,在哪里创建呢?
- 在你的网站根目录下创建或修改
使用 HTTP 基本认证
- 通过在Nginx中配置HTTP基本认证,要求用户输入用户名和密码才能访问
/images
目录。
nginxlocation /images/ { auth_basic "Restricted Access"; auth_basic_user_file /path/to/htpasswd; }
这个方法可以有效防止未授权的用户访问图片,但如果密码泄露或被破解,仍然存在风险。
- 通过在Nginx中配置HTTP基本认证,要求用户输入用户名和密码才能访问
限制IP访问
- 如果你的图床仅供特定用户或系统使用,你可以通过设置允许列表来限制只有特定的IP能够访问
/images
目录。
nginxlocation /images/ { allow 192.168.1.1; # 允许的IP地址 deny all; # 拒绝其他所有请求 }
- 如果你的图床仅供特定用户或系统使用,你可以通过设置允许列表来限制只有特定的IP能够访问
限制 Referer
- 通过检查 HTTP Referer 头来限制图片只能由你网站上的页面引用。
nginxlocation ~* \.(gif|png|jpe?g)$ { valid_referers none blocked yourdomain.com *.yourdomain.com; if ($invalid_referer) { return 403; } }
这个方法可以一定程度上阻止图片被其他网站直接引用,但
Referer
头可以被伪造,因此并不是完全可靠的。使用防爬虫规则
- 通过设置一些防爬虫的规则来阻止爬虫。例如,使用
limit_req_module
和limit_conn_module
来限制每个IP的访问频率和连接数。
nginxhttp { limit_req_zone $binary_remote_addr zone=images:10m rate=5r/m; limit_conn_zone $binary_remote_addr zone=addr:10m; } server { location /images/ { limit_req zone=images burst=10 nodelay; limit_conn addr 3; } }
- 通过设置一些防爬虫的规则来阻止爬虫。例如,使用
加密图片名称
- 定期更改
/images
目录的图片文件名,并使用不容易被预测的命名模式。这样即使有人访问到了一部分图片,但在你更新命名后他们的链接也会失效。
- 定期更改
设置CORS策略
- 如果你想防止图片被其他网站直接引用,你可以通过设置CORS策略来实现。
nginxlocation /images/ { if ($http_referer !~* ^(https?://)(www\.)?yourdomain\.com) { add_header 'Access-Control-Allow-Origin' 'yourdomain.com'; } }
请记住,没有一种方法是万能的,可能需要结合使用多种策略来有效保护你的服务器。另外,确保对服务器进行定期的安全检查和维护,以便及时发现并处理安全漏洞。
图床传输工具
- Picgo
- ShareX