返回

DIY 免费分布式存储:当 Gitee 掉线,如何自力更生?

后端

最近,Gitee 一系列令人头疼的举措引发了众多程序员的声讨。先是博客园关停,现在又是 Gitee 限制仓库公开,要求开源审核。这种种行为不禁让人怀疑,Gitee 是否已经被约谈?

对于程序员来说,Gitee 作为国内最大的代码托管平台,它的倒下无疑是一个重创。尤其是对于那些依赖 Gitee 托管图床的用户而言,辛苦搭建的图片资源毁于一旦。

好在,程序员们并非束手无策。开源社区中,有着众多优秀的分布式存储解决方案,能够帮助我们摆脱对 Gitee 的依赖,自己动手搭建免费的分布式存储服务。

技术指南

选择分布式存储解决方案

市面上有许多优秀的分布式存储解决方案可供选择,例如:

  • MinIO:开源对象存储,与 Amazon S3 兼容
  • Ceph:分布式文件系统和对象存储
  • GlusterFS:开源分布式文件系统

对于个人搭建图床来说,MinIO 是一个不错的选择,因为它轻量级、易部署,且与 Amazon S3 兼容,可以直接作为 Gitee 图床的替代方案。

部署 MinIO

在服务器上部署 MinIO 非常简单,只需执行以下步骤:

  1. 下载 MinIO 安装包:https://docs.min.io/docs/minio-install-quickstart-guide
  2. 解压缩安装包:tar -xvf minio.tar.gz
  3. 启动 MinIO:minio server /my-data

其中,/my-data 是 MinIO 存储数据的目录。

配置 MinIO

配置 MinIO 以启用对象存储:

  1. 创建存储桶:minio bucket make my-bucket
  2. 设置存储桶策略:minio policy set my-bucket public

这样,你的 MinIO 存储桶就可以通过互联网访问了。

将图片上传到 MinIO

可以使用 MinIO 客户端工具或 RESTful API 将图片上传到 MinIO 存储桶:

  • MinIO 客户端工具:mc cp my-image.jpg my-bucket/images
  • RESTful API:curl -X PUT -H "Content-Type: image/jpeg" --data-binary @my-image.jpg "http://minio-ip:9000/my-bucket/images/my-image.jpg"

使用 MinIO 作为 Gitee 图床

在 Gitee 中配置 MinIO 图床:

  1. 在 Gitee 中新建一个仓库
  2. 设置仓库的 README.md 文件,将 MinIO 存储桶的 URL 作为图床地址

例如:

[外链图片转存失败(img-aOs5wh8O-1663972174591)]

其中,https://my-minio-ip:9000/my-bucket/images/my-image.jpg 是 MinIO 存储桶中图片的 URL。

现在,你就可以使用自己的分布式存储服务作为 Gitee 图床,不再受 Gitee 的限制。

结语

Gitee 的倒下对程序员来说是一个警示,提醒我们不能依赖单一的平台。通过自己搭建分布式存储服务,我们可以掌握数据的主权,避免因第三方服务中断而导致损失。开源社区中有着众多优秀的分布式存储解决方案,为我们提供了更多选择。希望本指南能够帮助大家搭建自己的免费分布式存储服务,告别对 Gitee 的依赖。