go-upload

Go 文件上传模块,hash去重/图片缩略图/配置文件,自实现

APACHE-2.0 License

Stars
39

go文件上传模块

基于github.com/axetroy/gin-uploader

  • 文件上传
  • 限制上传文件的后缀名
  • 限制上传文件的大小
  • Hash去重,防止重复上传
  • 图片自动生成缩略图
  • 全由配置

如何运行

go get -v -u github.com/axetroy/go-upload
cd $GOPATH/src/github.com/axetroy/go-upload
make build
./bin/server
# 或者以生产环境运行
GO_ENV=production ./bin/server

API


# 上传相关
[POST]  /upload/image                           # 图片上传
[POST]  /upload/file                            # 其他文件上传
[GET]   /upload/example                         # 上传demo,仅在开发模式下
# 下载相关
[GET]   /download/image/origin/:filename        # 获取上传的原始图片
[GET]   /download/image/thumbnail/:filename     # 获取上传的缩略图片
[GET]   /download/file/download/:filename       # 下载文件
[GET]   /download/file/raw/:filename            # 获取文件

配置文件

配置文件与二进制同一目录

# config.yaml

# 在GO中,所有属性绑定到结构体,都是小写

# HTTP模块设置
http:
  host: localhost                               # 监听地址
  port: 9044                                    # 监听端口

# 上传模块的相关设置

upload:
  path: uploads                                 # 文件上传的根目录
  # 普通文件上传
  file:
    path: files                                 # 文件上传的目录
    maxsize: 10485760                           # 上传文件的最大大小
    allowtype:                                  # 允许上传的文件后缀名
      - .log
      - .txt
      - .text
      - .md
  # 图片上传
  image:
    path: image                                 # 图片上传的目录
    maxsize: 10485760                           # 上传图片的最大大小
    thumbnail:
      path: thumbnail                           # 缩略图存放的目录
      maxwidth: 300                             # 缩略图最大宽度
      maxheight: 300                            # 缩略图最大高度

License

Package Rankings
Top 8.17% on Proxy.golang.org
Badges
Extracted from project README
FOSSA Status