首页 > 解决方案 > Agora 云录制不保存到 S3 并返回 404

问题描述

我正在尝试将我的音频提要保存到 AWS S3。Acquire and start call 给出了文档中给出的正确响应,但是当我尝试停止录制时,它会抛出 404 错误代码。此外,在 AWS S3 存储桶中也找不到记录。

以下是每个呼叫的请求和响应

/acquire
#Request body 
body = {"cname": cname, "uid": uid, "clientRequest": {"resourceExpiredHour": 24}}
#Response
"Code": 200,
"Body":
{
 "resourceId": "IqCWKgW2CD0KqnZm0lcCzQisVFotYiClVu2jIxWs5Rpidc9y5HhK1HEHAd77Fy1-AK9piRDWUYNlU-AC7dnZfo6QVukbSB_eh3WqTv9_ULLK-EXxt93zdO8yAzY-3SGMPVJ5x4Rx3DsHgvBfnzJWhOvjMFEcEU9X4WMmtdXJxqjV3hhpsx74tefhzfPA2A7J2UDlmF4RRuINeP4C9uMRzPmrHlHB3BrQcogcBfdgb9DAx_ySNMUXGMQX3iGFuWBtjNRB4OLA2HS04VkSRulx3IyC5zkambri3ROG6vFV04jsPkeWb3hKAdOaozYyH4Sq42Buu7dM2ndVxCMgoiPDCi-0JCBL77RkuOijiOGQtOU-w9QKoPlTXRNeTur1MSfouE0A-4eDgu79FxK5abX7dckwcv9R3AExvs47U-uhmBh8vE6NXx4dQrXsu9Krx7Ao"
}


/start
#Request body 
body = {
        "uid": uid,
        "cname": cname,
        "clientRequest": {
            "recordingConfig": {
                "maxIdleTime": 30,
                "streamTypes": 0,
                "channelType": 0,
            },
            "recordingFileConfig": {"avFileType": ["hls"]},
            "storageConfig": {
                "accessKey": ACCESS_ID,
                "region": 8,
                "bucket": BUCKET_NAME,
                "secretKey": ACCESS_SECRET,
                "vendor": 1,
                "fileNamePrefix": [cname, TODAY_DATE.strftime("%d%m%Y")],
            },
        },
    }
#Response
"Code": 200,
"Body":
{
"sid": "fd987833cb49dc9ba98ceb8498ac23c4", 
"resourceId": "IqCWKgW2CD0KqnZm0lcCzQisVFotYiClVu2jIxWs5Rpidc9y5HhK1HEHAd77Fy1-AK9piRDWUYNlU-AC7dnZfo6QVukbSB_eh3WqTv9_ULLK-EXxt93zdO8yAzY-3SGMPVJ5x4Rx3DsHgvBfnzJWhOvjMFEcEU9X4WMmtdXJxqjV3hhpsx74tefhzfPA2A7J2UDlmF4RRuINeP4C9uMRzPmrHlHB3BrQcogcBfdgb9DAx_ySNMUXGMQX3iGFuWBtjNRB4OLA2HS04VkSRulx3IyC5zkambri3ROG6vFV04jsPkeWb3hKAdOaozYyH4Sq42Buu7dM2ndVxCMgoiPDCi-0JCBL77RkuOijiOGQtOU-w9QKoPlTXRNeTur1MSfouE0A-4eDgu79FxK5abX7dckwcv9R3AExvs47U-uhmBh8vE6NXx4dQrXsu9Krx7Ao"
}


/stop
#Request body 
body = {"cname": cname, "uid": uid, "clientRequest": {}}
#Response
{
    "resourceId": "IqCWKgW2CD0KqnZm0lcCzQisVFotYiClVu2jIxWs5Rpidc9y5HhK1HEHAd77Fy1-AK9piRDWUYNlU-AC7dnZfo6QVukbSB_eh3WqTv9_ULLK-EXxt93zdO8yAzY-3SGMPVJ5x4Rx3DsHgvBfnzJWhOvjMFEcEU9X4WMmtdXJxqjV3hhpsx74tefhzfPA2A7J2UDlmF4RRuINeP4C9uMRzPmrHlHB3BrQcogcBfdgb9DAx_ySNMUXGMQX3iGFuWBtjNRB4OLA2HS04VkSRulx3IyC5zkambri3ROG6vFV04jsPkeWb3hKAdOaozYyH4Sq42Buu7dM2ndVxCMgoiPDCi-0JCBL77RkuOijiOGQtOU-w9QKoPlTXRNeTur1MSfouE0A-4eDgu79FxK5abX7dckwcv9R3AExvs47U-uhmBh8vE6NXx4dQrXsu9Krx7Ao",
    "sid": "fd987833cb49dc9ba98ceb8498ac23c4",
    "code": 404,
    "serverResponse": {
        "command": "StopCloudRecorder",
        "payload": {
            "message": "Failed to find worker."
        },
        "subscribeModeBitmask": 1,
        "vid": "431306"
    }
}

我的 AWS 存储桶 CORS 策略如下:

[
    {
        "AllowedHeaders": [
            "Authorization",
            "*"
        ],
        "AllowedMethods": [
            "HEAD",
            "POST"
        ],
        "AllowedOrigins": [
            "*"
        ],
        "ExposeHeaders": [
            "ETag",
            "x-amz-meta-custom-header",
            "x-amz-storage-class"
        ],
        "MaxAgeSeconds": 5000
    }
]

标签: amazon-web-servicesagora.io

解决方案


我面临着同样的问题。

我想记录一个用户的会话,但似乎这是不可能的,必须是两个具有不同 uid 的用户。不知道为什么,但至少以下内容对我有用。

尝试:

  1. 使用 uid 之类的用户开始您的流:1
  2. 将另一台设备连接到相同的频道但不同的 uid。
  3. 开始录制
  4. 在停止录制之前,请确保查询请求正在返回数据
  5. 如果您从查询请求中获取数据,那么您的流正在录制。

推荐阅读