news 2026/9/9 6:30:22

轻量级云文件系统simple-file-server,电脑秒变存储服务器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
轻量级云文件系统simple-file-server,电脑秒变存储服务器

Simple File Server

一个简单的文件服务器,使用 Go 和 Gin 框架构建,支持文件上传、下载和静态文件服务。

功能特性

  • 文件上传:支持普通文件上传和分片上传(multipart upload)

  • 文件下载:通过 HTTP GET 请求下载文件

  • 静态文件服务:自动服务数据目录中的文件

  • API 认证:上传操作需要 admin-api-token 认证

  • 跨平台支持:支持 Linux 和 macOS 的 amd64 和 arm64 架构

安装

从源码构建

确保你已经安装了 Go 1.22 或更高版本。

git clone <repository-url>cd simple-file-server make

构建完成后,二进制文件将在build/目录中生成。

使用 Docker 构建

确保你已经安装了 Docker。

docker build -t simple-file-server . docker run -p 60088:60088 --rm \ -v $(pwd)/data-docker:/data:rw \ -v $(pwd)/config.json:/config.json simple-file-server

下载预编译二进制文件

从 release 页面下载适合你平台的二进制文件。

配置

服务器通过config.json文件进行配置:

{ "debug": false, "port": 60088, "apiToken": "your-admin-api-token", "tempDir": "./temp", "dataDir": "./data"}
  • debug: 是否启用调试模式

  • port: 服务器监听端口

  • apiToken: 管理员 API 令牌,用于上传操作

  • tempDir: 临时文件目录

  • dataDir: 数据文件存储目录

运行

使用二进制文件

./simple-file-server

使用 Docker

docker run -p 60088:60088 -v $(pwd)/data:/root/data -v $(pwd)/temp:/root/temp simple-file-server

服务器将在配置的端口上启动,并开始监听请求。

API 文档

Ping

检查服务器状态。

  • URL:/_admin/ping

  • Method: GET

  • Response:{"code": 0, "msg": "ok", "data": "ok"}

文件上传

上传单个文件。

  • URL:/_admin/upload

  • Method: POST

  • Headers:

    • admin-api-token: 管理员令牌

  • Form Data:

    • file: 要上传的文件

    • filePath: 文件保存路径(必需)

  • Response:{"code": 0, "msg": "ok", "data": {"filePath": "path/to/file"}}

分片上传初始化

初始化分片上传。

  • URL:/_admin/upload/multipart_init

  • Method: POST

  • Headers:

    • admin-api-token: 管理员令牌

    • Content-Type: application/json

  • Body:

    { "filePath": "example.txt", "totalParts": 10, "totalSize": 10485760}
  • Response:{"code": 0, "msg": "ok", "data": {"uploadId": "123456789"}}

分片上传

上传文件的一个分片。

  • URL:/_admin/upload/multipart_upload

  • Method: POST

  • Headers:

    • admin-api-token: 管理员令牌

  • Form Data:

    • uploadId: 上传 ID

    • partNumber: 分片编号

    • file: 分片文件

  • Response:{"code": 0, "msg": "ok", "data": "ok"}

分片上传完成

完成分片上传并合并文件。

  • URL:/_admin/upload/multipart_end

  • Method: POST

  • Headers:

    • admin-api-token: 管理员令牌

    • Content-Type: application/json

  • Body:

    { "uploadId": "123456789"}
  • Response:{"code": 0, "msg": "ok", "data": {"filePath": "example.txt"}}

分片上传中止

中止分片上传并清理临时文件。

  • URL:/_admin/upload/abort

  • Method: POST

  • Headers:

    • admin-api-token: 管理员令牌

    • Content-Type: application/json

  • Body:

    { "uploadId": "123456789"}
  • Response:{"code": 0, "msg": "ok", "data": "ok"}

检查文件是否存在

检查指定文件是否存在。

  • URL:/_admin/has

  • Method: POST

  • Headers:

    • admin-api-token: 管理员令牌

    • Content-Type: application/json

  • Body:

    { "path": "path/to/file.txt"}
  • Response:{"code": 0, "msg": "ok", "data": true}{"code": 0, "msg": "ok", "data": false}

获取文件大小

获取指定文件的大小。

  • URL:/_admin/size

  • Method: POST

  • Headers:

    • admin-api-token: 管理员令牌

    • Content-Type: application/json

  • Body:

    { "path": "path/to/file.txt"}
  • Response:{"code": 0, "msg": "ok", "data": {"size": 12345}}(文件大小字节数)

获取文件内容

获取指定文件的内容。

  • URL:/_admin/get

  • Method: POST

  • Headers:

    • admin-api-token: 管理员令牌

    • Content-Type: application/json

  • Body:

    { "path": "path/to/file.txt"}
  • Response:二进制数据

移动文件

移动文件到新位置。

  • URL:/_admin/move

  • Method: POST

  • Headers:

    • admin-api-token: 管理员令牌

    • Content-Type: application/json

  • Body:

    { "from": "old/path/file.txt", "to": "new/path/file.txt"}
  • Response:{"code": 0, "msg": "ok", "data": "ok"}

删除文件

删除指定文件。

  • URL:/_admin/delete

  • Method: POST

  • Headers:

    • admin-api-token: 管理员令牌

    • Content-Type: application/json

  • Body:

    { "path": "path/to/file.txt"}
  • Response:{"code": 0, "msg": "ok", "data": "ok"}

文件下载

下载文件。

  • URL:/{fileName}

  • Method: GET

  • Response: 文件内容

许可证

Apache 2.0 License

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/8 5:24:32

百考通AI让复杂数据从“沉默的数字”到“决策的金矿”

在当今这个数据爆炸的时代&#xff0c;无论是学术研究、商业运营还是个人项目&#xff0c;我们每天都被海量的数据所包围。然而&#xff0c;数据本身并不等于价值&#xff0c;真正的挑战在于如何从这些纷繁复杂的数字中提炼出洞见&#xff0c;转化为可执行的决策。对于非专业人…

作者头像 李华
网站建设 2026/9/9 4:59:29

为什么很多站群或泛目录项目前期有效,但运行一段时间后整体效果迅速下降?问题到底出在系统还是内容上?

一、问题并不只在内容&#xff0c;而在内容“承载方式” 很多项目在内容层面做了大量工作&#xff1a; 关键词拆分 模板差异化 文本改写或生成 但忽略了一个关键问题&#xff1a; 搜索引擎看到的不是“内容本身”&#xff0c;而是内容通过系统呈现出来的结构。 如果系统存…

作者头像 李华
网站建设 2026/9/6 16:21:42

多线程与并发核心知识点总结(含高频面试题)

在Java开发中&#xff0c;多线程与并发是核心知识点&#xff0c;也是面试中的高频考点。本文将针对四个关键问题展开详细分析&#xff0c;结合原理和实例帮大家理清思路&#xff0c;夯实基础。一、run()和start()方法的区别在创建并启动线程时&#xff0c;我们常接触到run()和s…

作者头像 李华
网站建设 2026/9/8 2:47:09

基于特征融合的农业病害检测系统(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于特征融合的农业病害检测系统(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码 介绍 针对农业领域病害检测&#xff0c;以目标检测领域YOLOv8算法为基准算法进行SDI特征融合优化&#xff0c;训练结果表明优化后的模型准确率提…

作者头像 李华
网站建设 2026/9/8 2:47:36

基于YOLOV8的道路缺陷检测系统(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于YOLOV8的道路缺陷检测系统(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码 有数据集2000多张模型已经训练好直接用即可 标价就是售价不包远程配置环境项目介绍:软件:PycharmAnaconda环境:python3.9opencv-python PyQt5torc…

作者头像 李华
网站建设 2026/9/6 21:07:56

兰亭妙微实战指南:APP 界面设计 4 大核心原则,平衡美观与实用

在移动互联网高度普及的当下&#xff0c;APP已成为人们工作、生活、娱乐的核心载体&#xff0c;而界面设计则是决定APP竞争力的关键因素。好的APP界面不仅能凭借视觉美感吸引用户&#xff0c;更能通过合理的布局、流畅的交互&#xff0c;降低用户使用成本&#xff0c;提升用户留…

作者头像 李华