首页 > 解决方案 > 如何从 CloudFlare 获取视频 ID 或使用生成的 ID 发布?

问题描述

我使用 Golang 将视频上传到 CloudFlare,我需要获取视频 ID。

CloudFlare 上传文档:链接

我认为有两种方法:1.上传视频后获取ID 2.上传带有ID的视频,我在后端生成

我花了几天时间试图找到有关它的一些信息,但我无法

这是我上传视频文件的 Golang 代码:

// get file from request
file, err := c.FormFile("file")
if err != nil {
    log.Errorf("get file error: %s", err)
    return c.JSONStatus(http.StatusBadRequest)
}

sourceFile, err := file.Open()
if err != nil {
    log.Errorf("open file error: %s", err)
    return c.JSONStatus(http.StatusInternalServerError)
}

fileBytes, err := ioutil.ReadAll(sourceFile)
if err != nil {
    fmt.Println(err)
}

// Here I generate Video ID (which I save to my DB)
fileName := uuid.New().String()

// Upload to CloudFlare
headers := make(http.Header)
headers.Add("X-Auth-Email", "***")
headers.Add("X-Auth-Key", "***")

config := &tus.Config{
    ChunkSize:           5 * 1024 * 1024,
    Resume:              false,
    OverridePatchMethod: false,
    Store:               nil,
    Header:              headers,
}

client, err := tus.NewClient("https://api.cloudflare.com/client/v4/accounts/"+ accountID +"/media", config) // I have tried to add /id after /media but I got 400 status code
if err != nil {
    log.Errorf("create upload client error: %s", err)
    return c.JSONStatus(http.StatusInternalServerError)
}

upload := tus.NewUploadFromBytes(fileBytes)

uploader, err := client.CreateUpload(upload)
if err != nil {
    log.Errorf("create upload error: %s", err)
    return c.JSONStatus(http.StatusInternalServerError)
}

标签: gocloudflare

解决方案


推荐阅读