轻量级云文件系统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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1174425.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JBoltAI的AI应用中台:构建企业智能化的坚实基础

在当今数字化与智能化交织的时代&#xff0c;企业对于AI技术的需求日益增长&#xff0c;如何高效、稳定地集成AI能力成为企业转型的关键。JBoltAI的AI应用中台&#xff0c;作为企业智能化的重要基础设施&#xff0c;不仅为Java生态下的AI应用开发提供了强有力的支撑&#xff0c…

企业上云转型的 “压舱石”—— 云服务器如何破解中小微企业数字化痛点​

​在数字经济加速渗透的今天&#xff0c;中小微企业的数字化转型不再是 “选择题”&#xff0c;而是 “生存题”。但资金有限、技术人才匮乏、运维能力薄弱等现实困境&#xff0c;让众多企业在数字化门口望而却步。云服务器的出现&#xff0c;以 “按需付费、弹性伸缩、简化运维…

基于逻辑回归模型的贷款违约预测(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于逻辑回归模型的贷款违约预测(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码 Python大数据分析商业分析商业数据分析机器学习数据可视化 jupyter数据分析项目 [绿圆]贷款违约预测 [绿圆]逻辑回归模型 Python分析报告项目&a…

一键生成专业文献综述

在浩如烟海的学术文献中&#xff0c;如何高效地梳理前人成果、精准定位研究空白&#xff0c;是每一位研究者面临的首要挑战。撰写一篇高质量的文献综述&#xff0c;不仅需要广博的阅读量&#xff0c;更需要强大的信息整合与批判性思维能力。这个过程往往耗时费力&#xff0c;令…

数字经济的 “安全基石”—— 云服务器零信任架构如何筑牢数据安全防线​

数字化转型过程中&#xff0c;数据已成为企业核心资产&#xff0c;但云原生架构的普及使安全边界逐渐模糊&#xff0c;传统 “边界防护” 模式难以应对容器逃逸、API 漏洞、内部违规等新型安全威胁。基于零信任 “永不信任、始终验证” 核心理念的云服务器安全体系&#xff0c;…

鸿蒙6访问内网域名异常排查

最近接到用户反馈&#xff0c;使用mate60pro升级到鸿蒙6.0版本后&#xff0c;访问校内应用异常&#xff0c;无法打开校内应用。 与用户了解情况如下&#xff1a; 手机型号&#xff1a;华为mate60pro 系统版本&#xff1a;6.0.0.120(SP6C00E120R4P11patch12) 正常获取了内网地址…

基于多模型比较的慢性肾病分类模型设计与优化研究(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于多模型比较的慢性肾病分类模型设计与优化研究(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码 选用KNN、决策树、逻辑回归、SVM和AdaBoost五种算法进行全面评估」 机器学习、大数据分析原创报告 实交高分&#xff0c;欢迎询…

2026.1.17HCSA第二次作业

1、文件查看&#xff1a;查看/etc/passwd文件的第5行[rootserver ~]# head -5 /etc/passwd | tail -1 lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin2、文件查找 (1)在当前目录及子目录中&#xff0c;查找大写字母开头的txt文件[rootserver ~]# find . -name "[A-Z]*.txt&quo…

2026必备!本科生毕业论文AI论文网站TOP9测评

2026必备&#xff01;本科生毕业论文AI论文网站TOP9测评 2026年本科生论文写作工具测评&#xff1a;为什么需要一份权威榜单&#xff1f; 随着人工智能技术的不断进步&#xff0c;越来越多的本科生开始借助AI论文网站提升写作效率、优化内容质量。然而&#xff0c;面对市场上琳…

Node.js用crypto.createCipheriv流式加密优化

&#x1f493; 博客主页&#xff1a;瑕疵的CSDN主页 &#x1f4dd; Gitee主页&#xff1a;瑕疵的gitee主页 ⏩ 文章专栏&#xff1a;《热点资讯》 Node.js流式加密优化&#xff1a;突破内存瓶颈与实时数据处理目录Node.js流式加密优化&#xff1a;突破内存瓶颈与实时数据处理 …

猫狗识别人工智能代码基于深度学习的猫狗识别系统完整源码+数据集+项目报告(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

猫狗识别人工智能代码基于深度学习的猫狗识别系统完整源码数据集项目报告(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码 yolov5yolov8目标检测算法模型大学生大作业用Python语言实现&#xff0c;深度学习和图像处理技术&…

基于深度学习的车辆检测系统(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于深度学习的车辆检测系统(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码 YOLOv5 PyTorch AnacondaOpenCV卷积神经网络CNN图片检测视频检测摄像头检测远程部署环境有数据集项目

AI 大模型时代的 “算力引擎”—— 云服务器如何支撑智能应用规模化落地​

2025 年&#xff0c;AI 大模型进入规模化应用阶段&#xff0c;从智能客服、内容生成到工业质检、医疗诊断&#xff0c;千行百业的智能化转型离不开强大的算力支撑。而云服务器作为 AI 大模型训练与推理的核心载体&#xff0c;通过全栈技术优化与架构创新&#xff0c;正成为 AI …

基于YOLOv5的葡萄叶片病虫害识别(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于YOLOv5的葡萄叶片病虫害识别(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码 &#xff0c;不包部署调试&#xff0c;带pyqt5的ui界面和数据集&#xff0c;报告

双碳目标下的 “绿色算力”—— 云服务器如何实现节能与性能双赢​

在 “双碳” 目标引领下&#xff0c;绿色低碳成为各行业发展的核心主题。云计算作为数字经济的核心基础设施&#xff0c;其能耗问题日益受到关注。数据显示&#xff0c;全球数据中心的能耗约占全球总用电量的 1.5%&#xff0c;而云服务器作为数据中心的核心设备&#xff0c;其节…

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

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

基于python机器学习的二手房数据分析(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于python机器学习的二手房数据分析(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码 机器学习房价预测(2025新数据集&#xff0c;python大数据分析&#xff0c;数据可视化机器学习jupyternotebookpython电子资料) 报告代码数据…

基于Hadoop的电商推荐系统有报告(设计源文件+万字报告+讲解)(支持资料、图片参考_相关定制)_文章底部可以扫码

基于Hadoop的电商推荐系统有报告(设计源文件万字报告讲解)&#xff08;支持资料、图片参考_相关定制&#xff09;_文章底部可以扫码

百考通AI任务书功能:精准理解你的课题,智能输出专业级毕业设计任务书

毕业设计任务书是高校教学管理中承上启下的关键文档——它既是选题的正式确认&#xff0c;也是后续研究工作的行动纲领。一份优秀的任务书&#xff0c;应当目标明确、内容具体、技术可行、格式规范。然而&#xff0c;现实中许多学生因缺乏经验或时间紧张&#xff0c;往往写出内…

百考通AI任务书功能:智能生成结构完整、内容规范的毕业设计任务书

撰写毕业设计任务书是高校学生进入正式研究阶段的重要环节&#xff0c;它不仅是指导教师与学生之间的“契约”&#xff0c;更是后续研究工作的行动指南。然而&#xff0c;许多学生在面对任务书时常常感到无从下手&#xff1a;任务内容如何描述才够具体&#xff1f;技术要求怎样…