Go断点续传

安装第三方包

go get github.com/tus/tusd/v2
package main

import (
	"fmt"
	"net/http"

	"github.com/tus/tusd/v2/pkg/filestore"
	tusd "github.com/tus/tusd/v2/pkg/handler"
)

func main() {
	// 本地磁盘
	store := filestore.FileStore{
		Path: "./uploads",
	}

	//文件存储
	composer := tusd.NewStoreComposer()
	store.UseIn(composer)
    //定义handler
	handler, err := tusd.NewHandler(tusd.Config{
		BasePath:              "/files/",
		StoreComposer:         composer,
        MaxSize:               1000000000, // 1GB
        Resumable:             true,       //开启断点续传
        Resume:                true,
		NotifyCompleteUploads: true,       //通知
	})
	if err != nil {
		panic(fmt.Errorf("unable to create handler: %s", err))
	}
    //监听上传
	go func() {
		for {
			event := <-handler.CompleteUploads
			fmt.Printf("Upload %s finished\n", event.Upload.ID)
		}
	}()
	// 上传地址 http://localhost:8080/files
	http.Handle("/files/", http.StripPrefix("/files/", handler))
	err = http.ListenAndServe(":8080", nil)
	if err != nil {
		panic(fmt.Errorf("unable to listen: %s", err))
	}
}
posted @   朝阳1  阅读(52)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示