Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Go 如何从CloudFlare获取视频ID或使用生成的ID发布视频ID?_Go_Cloudflare - Fatal编程技术网

Go 如何从CloudFlare获取视频ID或使用生成的ID发布视频ID?

Go 如何从CloudFlare获取视频ID或使用生成的ID发布视频ID?,go,cloudflare,Go,Cloudflare,我用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",

我用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)
}

你需要的视频或完整的链接ID也足够吗?如果链接足够,您可能可以通过
uploader.URL()
方法获取此URL。因此,我通过解析URL获取视频ID?我认为在此URL中
/
之后的最后一部分是视频ID。因此URL看起来像
https://api.cloudflare.com/client/v4/accounts/{accountID}/media/{videoID}
是的,您可能可以通过此url获取信息。您是否需要视频ID或完整链接也足够?如果链接足够,您可能可以通过
uploader.URL()
方法获取此URL。因此,我通过解析URL获取视频ID?我认为在此URL中
/
之后的最后一部分是视频ID。因此URL看起来像
https://api.cloudflare.com/client/v4/accounts/{accountID}/media/{videoID}
是的,您可能可以通过此url获取信息。