Skip to content
0

文章发布较早,内容可能过时,阅读注意甄别。

图床

图床

image-20240911230537556

目录

[toc]

为什么要使用图床

对于写博客的朋友们来讲,图床这个东西一定不会陌生,而且在一定程度上也给大家造成过一定困扰。

对于不清楚这个东西的朋友,我就在这儿大概说一下图床是个啥东西。所谓图床,其实可以就相当于我们手机上的相册,不过他是在线的,而且是对大家开放的,大家都可以访问查看,但是编辑删除这些功能仅限于拥有者,就相当于用百度云分享的公开照片,你可以查看,也可以下载下来编辑,但是拥有权还是属于分享者。

那你可能会疑惑,那这个东西和写博客的我们有啥关系呢?

你想想,我们写博客,是不是有很多图片需要插入,我们这些博客要保留在本地的时候你可以预览到图片,但一旦你要把它发布到网上,这时候问题来了!发现图片上传失败,那是因为你本地的图片都是存在本地的,平台不会自动给你上传,那这个时候就凸显出图床的重要性了。当然了,如果你是直接在平台进行编辑,那着一点就不用担心了,基本平台都会自动给你上传到它自己的服务器。

有了图床,我们在本地写好博客之后,就能够任意复制到其他平台,不用担心图片丢失问题了。

  • md的核心就是解决图床问题,如果解决了图床问题,不管用typora还是ob来维护笔记核心数据,就会特别香;
  • 还是那句话,核心笔记数据必须自主可控,不绑定任何一家笔记应用。

需求背景

1、解决自己typora md图床问题

2、解决自己博客文章图床问题

常见图床搭建方式

1、本地图床

存放图床的目录可用坚果云百度云同步空间来同步数据,以保证其数据安全性。

bash
D:\我的坚果云\LocalImages
D:\BaiduSyncdisk\LocalImgs

1.typora+相对路径

1、优点

相对路径的md文件可以方便进行传播;

方便静态站点工具渲染md(例如docusaurus支持相对路径的md文档的渲染);

2、缺点

不是很利于md文件的维护;

且会造成某些文件的重复使用,导致存储空间增大;

2.typora+绝对路径

  • 个人更推荐使用typora+绝对路径方式,例如自己就是将本地图床路径设置为D:\BaiduSyncdisk\LocalImgs\图片,这样的话,更利于维护自己的笔记数据;

  • 使用绝对路径的话,就可以轻松修改md文件名称了;(这个还是非常方便的)如果使用相对路径,每次修改md文件名称后,还需要修改存放图片目录的名称,然后再批量替换md文件中图片的路径。

bash
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日 群辉大佬

img

2024年3月17日收藏

Lsky Pro

参考文章

https://www.ywsj365.com/archives/docker-da-jian-yi-ge-shu-yu-zi-ji-de-tu-chuang

image-20240317071406110

案例: 初柒工坊图床

img

img

案例:EasyImage图床

2023年9月8日记录

img

搭建参考链接

https://blog.csdn.net/qq_24694139/article/details/132425616

img

https://zhuanlan.zhihu.com/p/648359245

img

https://post.smzdm.com/p/akk76n7k/

img

案例:群晖方式

==使用群辉nas搭建图床推荐吗==

gpt-2023.8.23回答

使用群晖 NAS 搭建图床是一个不错的选择。群晖 NAS(Synology NAS)提供了一个易于使用的操作界面和丰富的应用程序生态系统,使您可以轻松地搭建自己的私有图床。

以下是使用群晖 NAS 搭建图床的一般步骤:

  1. 设置群晖 NAS:首先,您需要购买并设置好群晖 NAS。确保您已配置网络连接和访问权限。
  2. 安装应用程序:在群晖 NAS 的应用商店中找到适合的图床应用程序,例如 Photo Station、Moments 等。根据应用程序的说明进行安装和设置。
  3. 上传图片:一旦安装和设置好应用程序,您可以通过电脑、手机或其他设备上传图片到群晖 NAS 上的图床应用程序中。
  4. 获取图片链接:上传成功后,应用程序会生成每张图片的唯一链接。您可以从图床应用程序中获取这些链接,用于在 Markdown 或其他地方引用图片。
  5. 引用图片:将生成的图片链接插入到您的 Markdown 文件中或任何需要引用图片的地方。

使用群晖 NAS 搭建图床的好处是,您可以轻松地将图片存储在自己的本地服务器上,完全掌握数据的安全与隐私。此外,群晖 NAS 还提供了许多其他功能,如备份、文件共享等,使其成为一个功能强大的家庭网络存储解决方案。

希望这个建议对您有帮助!如果您有其他问题,请随时提问。


==那么它的缺点呢==

gpt-2023.8.23回答

尽管群晖 NAS 拥有多个优点,但也有一些潜在的缺点需要考虑:

  1. 成本较高:相对于其他图床解决方案,群晖 NAS 的成本较高。它包括 NAS 硬件设备的购买成本以及可能需要付费的应用程序和插件。
  2. 技术要求:搭建和管理一个群晖 NAS 需要一定的技术知识。您需要了解一些网络配置、存储管理和应用程序设置方面的基础概念。
  3. 面向家庭或小团队:群晖 NAS 的设计初衷是为家庭用户或小型办公室提供文件存储和共享功能,因此其性能和扩展性可能有限。对于大型企业或需要处理大量数据和高并发访问的场景,可能需要更专业的存储解决方案。
  4. 依赖网络连接:群晖 NAS 通常需要稳定的网络连接才能正常工作。如果遇到网络故障或互联网连接问题,可能会对访问和管理图床造成影响。
  5. 电力消耗和噪音:由于群晖 NAS 是一个运行24/7的设备,它可能会产生一定的电力消耗和噪音。这需要考虑到设备的放置位置和环境。

这些缺点并不意味着群晖 NAS 不是一个好的选择,而是需要根据您的具体需求和预算来评估。如果您需要更高级的功能和可扩展性,或者对技术方面感到不太熟悉,可能需要考虑其他图床解决方案或咨询专业人士的建议。

希望这些信息能对您有所帮助!如果您有其他问题,请随时提问。


案例:utools

图床管理:https://u.tools/plugins/detail/图床+Plus/?c=z9ojhrcx3m

image-20250721145928079

image-20250721212731701

案例:二丫图床方案

image-20250721150032468

image-20250721150215011

image-20250721150551959


image-20250721213303155

image-20250721213310329

最佳方案

购买一台云服务器和一个域名,部署Nginx,然后利用云服务器的nginx提供md图床服务。同时利用rsync服务定期同步图床数据到本地进行备份,稳得一b。

bash
云服务器:部署nginx服务(提供图床服务)
typora:作为本地md编辑软件(当然用ob也行哦)
picgo:作为md里图片上传工具

本方案优点:

  1. 图床使用域名做解析,即使以后换ecs的公网ip后,我们只需要迁移图片数据就行,md元数据是不用动的,很丝滑。
  2. 自己也利用rsync会每天定时从linux同步数据到本地windows PC,简直nice。==(rsync服务、nginx服务部署很简单,请放心)==
  3. 解决了md图床问题,那么使用typora/ob维护笔记数据,体验真的飞起哦。另外,也一起解决了博客图床问题哦,完美。

如何防护

警告

以下内容仅供参考!

自己利用网站服务器的nginx的某个目录/images来作为md图床使用,如何防止别人利用爬虫程序来爬取我网站图床里/images下的所有图片呢?

gpt内容:

防止爬虫爬取网站/images目录下的图片,你可以采取以下几种措施来保护你的Nginx服务器上的图床:

  1. 修改 robots.txt 文件

    • 在你的网站根目录下创建或修改 robots.txt 文件,使用 Disallow 语句来告诉遵守规则的爬虫不要爬取 /images 目录。
    plaintext
    User-agent: *
    Disallow: /images/

    但是请注意,不是所有的爬虫都会遵守 robots.txt 的规则,恶意爬虫通常会忽视这个文件。

    NOTE

    但是,在哪里创建呢?

  2. 使用 HTTP 基本认证

    • 通过在Nginx中配置HTTP基本认证,要求用户输入用户名和密码才能访问 /images 目录。
    nginx
    location /images/ {
        auth_basic "Restricted Access";
        auth_basic_user_file /path/to/htpasswd;
    }

    这个方法可以有效防止未授权的用户访问图片,但如果密码泄露或被破解,仍然存在风险。

  3. 限制IP访问

    • 如果你的图床仅供特定用户或系统使用,你可以通过设置允许列表来限制只有特定的IP能够访问 /images 目录。
    nginx
    location /images/ {
        allow 192.168.1.1; # 允许的IP地址
        deny all; # 拒绝其他所有请求
    }
  4. 限制 Referer

    • 通过检查 HTTP Referer 头来限制图片只能由你网站上的页面引用。
    nginx
    location ~* \.(gif|png|jpe?g)$ {
        valid_referers none blocked yourdomain.com *.yourdomain.com;
        if ($invalid_referer) {
            return 403;
        }
    }

    这个方法可以一定程度上阻止图片被其他网站直接引用,但 Referer 头可以被伪造,因此并不是完全可靠的。

  5. 使用防爬虫规则

    • 通过设置一些防爬虫的规则来阻止爬虫。例如,使用 limit_req_modulelimit_conn_module 来限制每个IP的访问频率和连接数。
    nginx
    http {
        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;
        }
    }
  6. 加密图片名称

    • 定期更改 /images 目录的图片文件名,并使用不容易被预测的命名模式。这样即使有人访问到了一部分图片,但在你更新命名后他们的链接也会失效。
  7. 设置CORS策略

    • 如果你想防止图片被其他网站直接引用,你可以通过设置CORS策略来实现。
    nginx
    location /images/ {
        if ($http_referer !~* ^(https?://)(www\.)?yourdomain\.com) {
            add_header 'Access-Control-Allow-Origin' 'yourdomain.com';
        }
    }

请记住,没有一种方法是万能的,可能需要结合使用多种策略来有效保护你的服务器。另外,确保对服务器进行定期的安全检查和维护,以便及时发现并处理安全漏洞。

图床传输工具

  1. Picgo
  2. ShareX
最近更新