家里搭建一个图床服务,多个平台发布文章图片不在是问题 发表于: 2024.08.31 | 分类于: 随笔 | 阅读次数: 176 **家里搭建一个图床服务,多个平台发布文章图片不在是问题** ## 背景 这段时间开始分享一些技术文档以及个人的一些观点,主要是在自己搭建的个人博客,公众号,掘金,知乎等平台上,发布文章必不可少的就是需要一个写作排版工具。Github上搜了搜,找到一个开源的项目"Markdown2Html",有开源的当然得自己部署一套咯,然后就有了自己的文章排版工具站:[https://md.luckday.cn](https://md.luckday.cn),简单来说就是用Markdown格式写文章然后转换成有漂亮主题样式的排版页面,然后一键发布到各个平台。  写文章得传图片吧,要是在每个平台上都上传一次图片,那真是太麻烦了,所以就有了第三方图床!就是图片上传到第三方,只用上传一次,文章发布到任何平台,不需要在重复上传图片了,都能查看! ## 为什么要自己搭建 > 当前的这个 文章排版工具站自带的有一部分 图床配置,有果壳(之前免费,现在收费),GitHub(国外,访问慢,简直没法用),阿里云OSS(要花钱开通OSS存储,虽然年费不是很高,经常用的还是有点费钱),Gitee(开源中国的代码托管平台,访问速度OK,即免费也快)。 **看起来Gitee很合适嘛,为啥要自己搭建?** - 有限制(单张图片不超过1M) - 不稳定(Gitee是代码托管平台,毕竟是企业要赚钱的,白薅资源,会封禁,加个防盗链就傻眼了) - 自己家里有服务器(内网穿透,公网可访问,闲着也是闲着,如何搭建内网穿透?我之前一篇文章有讲[我如何搭建一台永久运行的个人服务器](https://mp.weixin.qq.com/s?__biz=MzkwMTY5MTU3MA==&mid=2247483698&idx=1&sn=c1da793fa803e0abee8c950c1b41ddd8&chksm=c0b1a0eff7c629f991afc845f3aabd7d4d63ae7f1b32afc875bc96ef877af6d164fc94963165#rd) - 简单(自己程序猿,搭建一个图床,小意思,简单) ## MinIO 安装 > MinIO是一款高性能高可用的文件系统服务,首先是开源的,其次在公司经常用这玩意。 服务器系统:CentOS7.9 ### 一、进入/home目录,创建minio文件夹 ``` cd /home mkdir minio ```  ### 二、wget下载二进制安装包 ``` wget https://dl.minio.io/server/minio/release/linux-amd64/minio ```  ### 三、在minio目录下创建 minio.log文件 > 我已经创建完了,就不执行了 ``` touch minio.log ```  ### 四、给minio 二进制文件添加执行权限 > 命令执行完后,minio文件变成可执行状态 ``` chmod 777 minio ```   ### 五、把minio的界面账户密码添加到全局环境变量中 ``` vim /etc/profile # set minio environment export MINIO_ROOT_USER=fileadmin export MINIO_ROOT_PASSWORD=fileadmin ```  保存操作,按esc 后,按'shift+:',然后输入'wq!',最后按回车。 ``` # 加载配置,使配置生效 source /etc/profile ``` ### 六、添加启动文件 ``` vim start.sh nohup /home/minio/minio server /home/minio/data --console-address ":35555" > /home/minio/minio.log 2>&1 & #保存退出,添加执行权限 chome 777 start.sh # 执行启动脚本文件 sh start.sh ``` 解释一下上面命令: - ‘nohup’和末尾’&'组合使用表示脱离终端后继续执行,也就是后台执行 - '2>&1’表示现在标准输出直接输入到/home/minio/minio.log 中,就是上面第一步建的日志文件中 - 二进制启动文件:/home/minio/minio 数据存储目录:/home/minio/data 指定后台管理界面端口:--console-address ":35555" 日志:/home/minio/minio.log  上面有两个ip端口,一个是Minio 的后台管理界面(端口35555),一个是 API接口调用的(端口9000), 浏览器打开这个:127.0.0.1:35555,没有意外的话,打开登录管理界面  登录的账户密码就是在 第五步设置的环境变量。**用户名:fileadmin 密码:fileadmin** 这个搞定了后,就可以内网穿透映射到公网访问使用了! ## 如何在Markdown2Html中使用MinIO > Markdown2Html 不支持Minio 存储,那怎么办呢? 这能难倒一个程序员么,源码拉下来,自己动手加  按照原项目格式,添加一个MinioOSS.js文件,然后一通调整修改,咔咔咔。。。搞定!   现在就可以愉快的写文章了!!! 最后附上 我魔改的排版工具站[https://md.luckday.cn](https://md.luckday.cn)