【问题标题】:Agora start Cloud Recording returns 400 with no error messageAgora 启动云录制返回 400 且没有错误信息
【发布时间】:2021-12-09 03:51:27
【问题描述】:

我正在尝试为 Agora 设置云录制。我可以调用获取方法并获取资源 ID,但是当我尝试开始录制时,我得到一个没有错误代码或原因消息的 400 响应。如果我更改请求正文的任何​​部分,我将收到错误代码 2 和原因消息,因此我认为我的请求格式正确。另外,由于第一次获取资源ID的请求是成功的,我认为不应该存在身份验证问题。生成 RTC 令牌的代码正在其他地方用于创建频道,用户可以在应用中加入频道。

    requestBody := fmt.Sprintf(`
        {
            "cname": "%s",
            "uid": "%d",
            "clientRequest": {
                "token": "%s",
                "recordingConfig": {
                    "maxIdleTime": 30,
                    "streamTypes": 0,
                    "channelType": 1,
                    "transcodingConfig": {
                        "height": 720,
                        "width": 1280,
                        "bitrate": 2260,
                        "fps": 15,
                        "mixedVideoLayout": 1,
                        "backgroundColor": "#000000"
                    }
                },
                "storageConfig": {
                    "vendor": %d,
                    "region": %d,
                    "bucket": "%s",
                    "accessKey": "%s",
                    "secretKey": "%s",
                    "fileNamePrefix": ["tracks"]
                }
            }
        }
    `, channelID, uid, rtcToken, 1 /*AWS*/, region, os.Getenv("AGORA_BUCKET_NAME"),
        os.Getenv("AGORA_BUCKET_ACCESS_KEY"), os.Getenv("AGORA_BUCKET_ACCESS_SECRET"),
        channelID)

    reqUrl := "https://api.agora.io/v1/apps/" + os.Getenv("AGORA_APP_ID") + "/cloud_recording/resourceid/" + rid + "/mode/mix/start"
    req, err := http.NewRequest("POST", reqUrl,
        bytes.NewBuffer([]byte(requestBody)))
    if err != nil {
        return response, err
    }

    req.Header.Set("Content-Type", "application/json")
    req.SetBasicAuth(os.Getenv("AGORA_CUSTOMER_ID"), os.Getenv("AGORA_CUSTOMER_CERTIFICATE"))

    resp, err := httpClient.Do(req)
    if err != nil {
        return response, err
    }

    if resp.StatusCode != http.StatusOK {
        // this is a 400 with no error code or reason
        logger.Log("statuscode", resp.StatusCode)
    }

【问题讨论】:

    标签: agora.io


    【解决方案1】:

    您能够获得resourceID 的原因是因为您的appID 启用了云录制,并且来自start400 响应意味着您的请求格式正确并成功调用以启动Agora Cloud Recorder 实例但是某些原因导致 Agora Cloud Recorder 无法启动。

    您是否尝试过使用Agora Postman collection 进行测试?我建议在 Postman 中使用它,因为它提供了一个工作配置,需要您将连接凭据设置到变量中,如果您的存储桶配置正确,它应该可以工作。

    I wrote this quick-start guide关于如何设置云录制并使用邮递员集合进行测试。

    【讨论】:

    • 确保检查您在请求中发送的存储桶区域。这是一个常见的错误,即没有设置正确的区域。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    • 2021-10-25
    • 2022-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-02
    相关资源
    最近更新 更多