本站面向开发者与科研用户,提供开源镜像的搜索和下载加速服务。
所有镜像均来源于原始开源仓库,本站不存储、不修改、不传播任何镜像内容。

simple-upload-server Docker 镜像下载 - 轩辕镜像

simple-upload-server 镜像详细信息和使用指南

simple-upload-server 镜像标签列表和版本信息

simple-upload-server 镜像拉取命令和加速下载

simple-upload-server 镜像使用说明和配置指南

Docker 镜像加速服务 - 轩辕镜像平台

国内开发者首选的 Docker 镜像加速平台

极速拉取 Docker 镜像服务

相关 Docker 镜像推荐

热门 Docker 镜像下载

simple-upload-server
mayth/simple-upload-server
自动构建

simple-upload-server 镜像详细信息

simple-upload-server 镜像标签列表

simple-upload-server 镜像使用说明

simple-upload-server 镜像拉取命令

Docker 镜像加速服务

轩辕镜像平台优势

镜像下载指南

相关 Docker 镜像推荐

用Golang编写的简单HTTP上传服务器,用于存储文件制品,支持文件上传、下载、基本认证及CORS,可通过命令行参数或配置文件灵活配置。
8 收藏0 次下载activemayth镜像

simple-upload-server 镜像详细说明

simple-upload-server 使用指南

simple-upload-server 配置说明

simple-upload-server 官方文档

go-simple-upload-server

镜像概述和主要用途

go-simple-upload-server 是一个用Golang编写的轻量级HTTP服务器,主要用途是存储文件制品。它提供简单的文件上传、下载功能,并支持基于token的认证机制,适用于个人文件存储、小型团队共享或CI/CD制品暂存等场景。

核心功能和特性

  • 文件操作:支持通过POST /upload上传文件(自动命名)、PUT /files/:path指定路径上传,以及GET /files/:path下载文件
  • 认证控制:基于token的访问控制,区分只读令牌(允许GET/HEAD)和读写令牌(允许POST/PUT/GET/HEAD)
  • 灵活配置:支持命令行参数或配置文件设置,包括监听地址、文档根目录、最大上传大小、文件命名策略等
  • CORS支持:默认启用跨域资源共享,便于前端应用集成
  • 安全控制:可配置为只读模式(仅提供下载功能)

使用场景和适用范围

  • 个人文件临时存储或共享
  • 小型团队内部文件交换
  • CI/CD流程中构建制品的临时存储
  • 前端应用的简单文件上传后端

使用方法和配置说明

命令行参数

参数类型默认值描述
-addrstring127.0.0.1:8080服务器监听地址
-configstring-配置文件路径(命令行参数优先级高于配置文件)
-document_rootstring.文档根目录(文件存储路径)
-enable_authboolfalse是否启用认证机制
-enable_corsbooltrue是否启用CORS头
-file_naming_strategystringuuid文件命名策略(默认使用UUID)
-max_upload_sizeint*** (1MB)最大上传大小(字节)
-read_only_tokensvalue-逗号分隔的只读令牌列表
-read_write_tokensvalue-逗号分隔的读写令牌列表
-shutdown_timeoutint*** (15s)优雅关闭超时时间(毫秒)

基本使用示例

简单启动(无认证)

bash
docker run -p 8080:8080 -v ./data:/data go-simple-upload-server -addr 0.0.0.0:8080 -document_root /data

启用认证(带读写令牌)

bash
docker run -p 8080:8080 -v ./data:/data go-simple-upload-server \
  -addr 0.0.0.0:8080 \
  -document_root /data \
  -enable_auth \
  -read_write_tokens "rw_token1,rw_token2" \
  -read_only_tokens "ro_token1"

认证机制

默认无需认证,启用认证需设置-enable_auth=true,并配置令牌:

  • 只读令牌read_only_tokens):允许执行GET(下载)、HEAD(检查文件存在)操作
  • 读写令牌read_write_tokens):允许所有只读操作及POST(上传)、PUT(指定路径上传)操作

认证方式

  • 通过Authorization: Bearer <TOKEN>请求头传递
  • 或通过token=<TOKEN>查询参数传递(请求头优先级更高)

认证失败响应401 Unauthorized,响应体为{"ok": false, "error": "unauthorized"}

TLS支持

v2版本移除了内置TLS支持,建议通过反向代理(如Nginx)实现HTTPS。

API文档

POST /upload

上传文件,服务器自动生成文件名(基于命名策略)

请求

  • Content-Typemultipart/form-data
  • 参数
    名称是否必填类型描述默认值
    fileForm Data文件内容-
    overwriteboolean是否允许覆盖已有文件false

响应

  • 成功201 Created,Content-Type: application/json
    json
    {"ok": true, "path": "/files/<filename>"}
    
  • 失败409 Conflict(文件已存在且未允许覆盖)

示例

bash
curl -F "file=@localfile.txt" http://localhost:8080/upload

PUT /files/:path

上传文件并指定存储路径(忽略原始文件名)

请求

  • 参数
    名称是否必填类型描述默认值
    :pathURL路径服务器存储路径(如/docs/report.pdf-
    fileForm Data文件内容-
    overwriteboolean是否允许覆盖已有文件false

响应

  • 成功201 Created,Content-Type: application/json
    json
    {"ok": true, "path": "/files/<path>"}
    
  • 失败409 Conflict(文件已存在且未允许覆盖)

示例

bash
curl -X PUT -F "file=@localfile.txt" http://localhost:8080/files/docs/report.pdf

GET /files/:path

下载指定路径的文件

请求

  • 参数
    名称是否必填类型描述
    pathURL路径文件存储路径

响应

  • 成功200 OK,响应体为文件内容(Content-Type自动推断)
  • 失败404 Not Found(文件不存在)

示例

bash
curl http://localhost:8080/files/docs/report.pdf -o downloaded.pdf

HEAD /files/:path

检查文件是否存在(仅返回响应头,无响应体)

请求

  • 参数path(URL路径,文件存储路径)

响应

  • 成功200 OK(文件存在)
  • 失败404 Not Found(文件不存在)

示例

bash
curl -I http://localhost:8080/files/docs/report.pdf

OPTIONS /files/:pathOPTIONS /upload

CORS预检请求(无需认证,始终返回204 No Content

注意

  • 不支持 OPTIONS * HTTP/1.1 格式请求
  • 即使文件不存在,OPTIONS /files/:path 仍返回 204 No Content

测试

本地测试

bash
# 运行所有测试(含端到端测试)
go test ./...

# 使用真实文件系统测试(需确保文档根目录为空)
TEST_WITH_REAL_FS="./testdata" go test ./...

# 测试远程服务器(需提前清空目标服务器文档根目录)
TEST_TARGET_ADDR="localhost:8080" go test ./...

Docker Compose测试

bash
# 运行端到端测试
docker compose -f docker-compose.e2e.yml run --rm test

# 测试完成后清理
docker compose -f docker-compose.e2e.yml down --rmi local --volumes

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker加速体验非常流畅,大镜像也能快速完成下载。"