跳到主要内容

MinIO 文件上传和下载示例

Github StackBlitz

此示例演示了一个简单的 Go Fiber 应用程序,其中包含用于上传单个和多个文件以及从 MinIO 下载文件的模块。每个模块都提供用于文件上传和检索的 REST API 端点,可作为需要文件存储和访问的应用程序的基础。

先决条件

确保您已安装以下软件

  • Go: (版本 1.22 或更高) 已安装
  • minio: 在您的本地机器或远程服务器上运行的 MinIO
  • Git

项目结构

  • single/main.go: 向/从 MinIO 上传和下载单个文件的示例。

  • multiple/main.go: 向 MinIO 上传多个文件以及从 MinIO 下载文件的示例。

  • go.mod: 管理项目依赖的 Go 模块文件。

入门

1. 克隆仓库

克隆仓库并导航到示例目录

git clone https://github.com/gofiber/recipes.git
cd recipes/minio

2. 安装依赖

使用 Go 的模块系统安装依赖

go mod download

运行示例

上传和下载单个文件

  1. 进入 single 目录

    cd single
  2. 启动应用程序

    go run main.go
  3. 使用 curlPostman 上传文件

    curl -F "document=@/path/to/your/file" http://localhost:3000/upload
  4. 在请求中指定文件名以下载文件

    curl -O http://localhost:3000/file/<filename>

上传多个文件和下载文件

  1. 进入 multiple 目录

    cd multiple
  2. 启动应用程序

    go run main.go
  3. 使用 curlPostman 上传多个文件

    curl -F "documents=@/path/to/your/file1" -F "documents=@/path/to/your/file2" http://localhost:3000/upload
  4. 在请求中指定文件名以下载文件。

    curl -O http://localhost:3000/file/<filename>

代码概览

single/main.go

  • 定义处理单个文件上传和下载的路由。

  • 包括文件验证、MinIO 连接和存储桶管理的错误处理。

multiple/main.go

  • 在一个请求中处理上传多个文件并允许文件下载。

  • 验证每个文件,并为成功和失败的上传提供详细响应。

总结

此示例提供了使用 Go Fiber 和 MinIO 管理文件上传和下载的方法。它可以扩展以支持其他功能,例如添加元数据、处理大文件或限制文件访问。

参考