首页 > 其他分享 >Go断点续传

Go断点续传

时间:2024-04-02 14:22:41浏览次数:14  
标签:断点续传 tus tusd v2 handler composer 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))
	}
}

标签:断点续传,tus,tusd,v2,handler,composer,Go
From: https://www.cnblogs.com/qcy-blog/p/18110482

相关文章

  • golang中GORM使用 many2many 多对多关联查询-详细案例
    表结构和数据user表CREATETABLE`user`(`id`bigint(20)NOTNULL,`user_key`bigint(20)NOTNULL,`account`char(32)NOTNULL)ENGINE=InnoDBDEFAULTCHARSET=utf8mb4;为了测试将user_key和id写入同样的值数据:+----+----------+---------+|id|user_k......
  • Go的数据结构与实现【LRU Cache】
    介绍在本文中,我们将用Go实现LRUCache。LRUCache最近最少使用(LRU)是一种缓存逐出算法,它按使用顺序组织元素。在LRU中,最长时间没有被使用的元素会被从缓存中逐出。例如,如果我们有一个容量为三个项目的缓存:最初,缓存是空的,我们将元素8放入缓存中,元素9和6像以前一样被缓存......
  • 从零开始构建gRPC的Go服务
    介绍ProtocolBuffersandgRPC是用于定义通过网络有效通信的微服务的流行技术。许多公司在Go中构建gRPC微服务,发布了他们开发的框架,本文将从gRPC入门开始,一步一步构建一个gRPC服务。背景之前在B站看过一个gRPC教学视频,尝试跟着视频做但踩了不少的坑,因此决定自己动手从官......
  • 5.103 BCC工具之filegone.py解读
    一,工具简介filegone 追踪文件消失的原因,无论是被删除还是被重命名。二,代码示例#!/usr/bin/pythonfrom__future__importprint_functionfrombccimportBPFimportargparsefromtimeimportstrftime#argumentsexamples="""examples:./filegone......
  • 一文教你实战构建消息通知系统Django
    本文分享自华为云社区《构建实时消息通知系统:Django实战指南》,作者:柠檬味拥抱。在Web应用程序中,实现消息通知系统是至关重要的,它可以帮助用户及时了解到与其相关的事件或动态。Django提供了信号机制,可以用于实现这样的通知系统。本文将介绍如何使用Django的信号机制来构建一个简......
  • Golang | Leetcode Golang题解之第4题寻找两个正序数组的中位数
    题目:题解:funcfindMedianSortedArrays(nums1[]int,nums2[]int)float64{iflen(nums1)>len(nums2){returnfindMedianSortedArrays(nums2,nums1)}m,n:=len(nums1),len(nums2)left,right:=0,mmedian1,median2:=0,0......
  • golang语言系列:Scrum、Kanban等敏捷管理策略
    云原生学习路线导航页(持续更新中)本文是golang语言系列文章,主要对编程通用技能Scrum、Kanban等敏捷管理策略进行学习1.什么是敏捷开发敏捷是一个描述软件开发方法的术语,它强调增量交付、团队协作、持续规划和持续学习。2001年,敏捷宣言提出:个体和交互胜过流程和......
  • 每日一题 --- 找出字符串中第一个匹配项的下标[力扣][Go]
    找出字符串中第一个匹配项的下标题目:28.找出字符串中第一个匹配项的下标给你两个字符串haystack和needle,请你在haystack字符串中找出needle字符串的第一个匹配项的下标(下标从0开始)。如果needle不是haystack的一部分,则返回-1。示例1:输入:haystack="sa......
  • 每日一题 --- 右旋字符串[卡码][Go]
    右旋字符串题目:55.右旋字符串(第八期模拟笔试)(kamacoder.com)题目描述字符串的右旋转操作是把字符串尾部的若干个字符转移到字符串的前面。给定一个字符串s和一个正整数k,请编写一个函数,将字符串中的后面k个字符移到字符串的前面,实现字符串的右旋转操作。例如,对于......
  • 【书籍】Django项目实例精解(第2版) pdf 下载
    Django项目实例精解(第2版)pdf下载作者:安东尼奥·米勒ISBN:9787302526551文件格式:pdf目录第1章构建博客应用程序11.1安装Django11.1.1创建隔离的Python环境21.1.2利用pip安装Django31.2创建第一个项目31.2.1运行开发服务器51.2.2项目设置61.......