Как получить идентификатор видео из CloudFlare или опубликовать его с созданным идентификатором? - PullRequest
1 голос
/ 09 июля 2019

Я загружаю видео в CloudFlare с помощью Golang, и мне нужно получить идентификатор видео.

CloudFlare Загрузить документы: ссылка

Я думаю, что есть два способа: 1Получить идентификатор после загрузки видео 2. Загрузите видео с идентификатором, который я генерирую на своем бэкэнде

Я потратил несколько дней, пытаясь найти некоторую информацию о нем, но не смог

Вот мой код 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)
}
...