go - 如何从 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)
}
解决方案
推荐阅读
- reactjs - React 需要在对 json 数组中的一个对象单击编辑时切换 div(打开/关闭)
- reactjs - Cesium 使用本地/离线 tileserver (TypeScript)
- flutter - 吸气剂“isEmpty”在 null 上被调用 - 相机颤动
- php - AppAuthenticator Symfony
- c++ - 如何使用 taocpp json 检查具有值类型数组的键
- oracle - 如何通过 Oracle 18c 中的用户定义过程访问 HR 模式对象?
- accelerometer - 使用 3 轴加速度计测量汽车速度
- hyperledger-fabric - 使用自己的 ca 服务器而不是 cryptogen 在策略中启用 Peer、Client、Admin 角色
- javascript - 我需要帮助了解 JavaScript 和 html5 的通信方式
- python-3.x - RuntimeError:cublas 运行时错误:资源分配失败