今天要分享一个超级实用的黑科技教程——如何利用 HuggingFace 免费搭建一个 100G 的图床和网盘,而且全程无需实名认证,操作简单,小白也能轻松上手!

这个项目其实是一个开源的“宝藏”,名字叫 CloudFlare-ImgBed,是一个基于 Cloudflare Pages 打造的文件托管平台。它不仅完全免费,还非常稳定高效,目前在 GitHub 上已经收获了超过 4k 的 star,热度非常高!项目的作者是 MarSeventh 大佬,不得不说,这个设计真的很良心。

它支持多种存储方式,配置灵活,可以满足不同场景下的需求。无论是做图床、分享文件,还是搭建个人小网盘,都非常方便。话不多说,咱们直接进入正题,开搞!

项目预览

前台界面

前台界面

后台界面

系统设置

上传设置

网页设置

技术架构

采用了前后端分离的架构:

  • 前端:基于 Vue.js 开发,界面响应式,用起来很流畅。
  • 后端:跑在 Cloudflare Workers 上,无服务器架构,省心又省钱。
  • 存储层:支持多种存储后端,包括 Telegram、R2、S3、Discard,以及我们今天要用到的 HuggingFace。
  • 元数据管理:统一通过 Cloudflare KV 进行管理,数据清晰又高效。

简单来说,就是通过 Cloudflare 的强大边缘网络,把 HuggingFace 的 100G 免费存储空间利用起来,变成一个私人的图床或网盘。

项目部署

作者提供了两种部署方式:一种是 Cloudflare Pages 托管(推荐,免费),另一种是 Docker 部署(适合有服务器的朋友)。

Cloudflare Pages部署(推荐)

GitHub地址:https://github.com/MarSeventh/CloudFlare-ImgBed

首先 fork 源码仓库到自己的 GitHub 。如果有更新就可以直接将更新的立马部署到 Cloudflare Pages 上。

1、在控制面板找到【计算和AI】然后点击【Worker and Pages】在页面的右上角点击【创建应用程序】,然后点击下面的想要部署 Pages?的【开始按钮】。如下图

创建Pages

2、在 “导入现有 Git 存储库” 处点击 “开始使用”

导入现有 Git 存储库

3、选择【CloudFlare-ImgBed】项目,然后点击【开始设置】按钮

选择CloudFlare-ImgBed项目

4、项目名称自定义,然后构建命令填入: npm install ,其他默认,点击【保存并部署】

项目配置

5、配置数据库

数据库用于存储文件元数据,是必需的组件,可选数据库为 KV 数据库和 D1 数据库。两者对比如下表所示,根据自己使用场景从其中选择一种配置即可

重要提示:KV 数据库和 D1 数据库只需要配置其中一个即可,不需要同时配置两个!建议根据下表选择适合自己的数据库类型。

特点 KV 数据库 D1 数据库
读写性能 较低
免费额度

在【存储和数据库】->【workers KV】添加KV数据库,KV名称填写 img_url

创建 KV 命名空间

如果要使用D1数据库,就在【存储和数据库】->【D1 SQL数据库】,点击右上角的【创建数据库实例】,这里就不做详细说明了。

6、将数据库绑定到项目上。

在Workers and Pages中点击刚刚部署好的项目,在面板中找到【设置】选项,点击绑定按钮,添加绑定KV数据库的信息如下。点击保存以后,项目会重新部署。

  • 变量名称:img_url
  • KV命名空间:img_url

将数据库绑定到项目上

7、重新部署以后,就可以使用CloudFlare分配的域名访问了,当然建议绑定自己的域名

重新部署

这里可以用到之前游魂分享的免费域名:域名白嫖指南:如何零成本拿下有效期近千年的“传家宝”域名?

Docker方式部署

方式一:Docker Compose(推荐)

1、创建项目目录

mkdir cloudflare-imgbed
cd cloudflare-imgbed

2、下载 Docker Compose 文件

# 下载 docker-compose.yml
wget https://raw.githubusercontent.com/MarSeventh/CloudFlare-ImgBed/main/docker-compose.yml

# 或者手动创建
curl -o docker-compose.yml https://raw.githubusercontent.com/MarSeventh/CloudFlare-ImgBed/main/docker-compose.yml

3、启动服务

# 启动服务(后台运行)
docker compose up -d

# 查看日志
docker compose logs -f

4、访问服务

打开浏览器访问:http://your-server-ip:7658 记得防火墙打开对应端口

方式二:Docker 命令

1、创建项目目录

mkdir cloudflare-imgbed
cd cloudflare-imgbed

2、拉取镜像

docker pull marseventh/cloudflare-imgbed:latest

3、运行容器

docker run -d \
  --name cloudflare-imgbed \
  -p 7658:8080 \
  -v $(pwd)/data:/app/data \
  marseventh/cloudflare-imgbed:latest

4、访问服务

打开浏览器访问:http://your-server-ip:7658 记得防火墙打开对应端口

HuggingFace注册

官方地址:https://huggingface.co

HuggingFace 渠道支持大文件直传,适合上传超过 20MB 的文件。对于大文件,系统会自动使用 LFS 协议进行分片上传。

1、注册登陆后,在控制面板新建一个新空间,空间名字自定义。

Select the Space SDK 选择 docker 的空项目或者是其他

创建空间1

Space hardware选择FREE版本不要钱的。空间的可见性也是根据你自己的意向选择就好了

然后点击下面的【Create Space 】按钮

创建空间2

2、创建 HuggingFace Access Token,在【Setting】中的【Access Tokens】中点击【Create New Token】就行了,token的名称自定义,然后勾选仓库的读写权限,如下。

创建 Token

存储配置

1、进入CloudFlare-ImgBed系统后台,在系统设置中,点击【系统设置】->在【上传设置】中添加上传渠道。如下

添加上传渠道

2、添加一个HF存储的渠道方式,渠道名称自定义,然后仓库名称一定是 用户名/仓库名 的格式,然后填入上面申请的Acess Token信息。点击保存就行了。

添加HF存储

3、在系统设置中,点击【系统设置】->【页面设置】中去配置默认上传渠道信息和其他的配置就行了,如下。

设置HF存储为默认渠道

你也可以增加其他的上传渠道,还可以开启负载均衡!

总结

这个方案是不是超级香?不需要实名认证,访问速度还杠杠的,最关键的是——完全免费!100G 的 HuggingFace 空间,加上 Cloudflare 的全球加速,无论是放博客图片、分享文件,还是当个人网盘,都绰绰有余。

而且全程无需自己买服务器、不用装任何客户端,只要有个 GitHub 账号和 Cloudflare 账号就能搞定。还要什么自行车?赶紧去搭建一个吧!

欢迎留言