非 UTC 时间导致生成七牛云直播回放发生 619 错误

作者:vkvi 来源:ITPOW(原创) 日期:2020-5-23

七牛云直播后,利用其 Api 取回放地址,我们取的是 m3u8 格式,所以不存在转码,立即生成,但是返回结果却是零长度字符串。

仔细看,原来使用 try、catch 没让异常触发,注释掉多层 try、catch,发现出现 619 的 HTTP 错误,我还第一次见到 619。

继续分析,发现七牛云在这里传入的两个参数:回放时间范围 start、end,是指 1970 年 1 月 1 日以来的秒数,这在意料之中,但是进一步分析,它这里采用的是 UTC!而在播放认证那里却是使用的本地时区!开发文档中并没有说明此事项。

C# 将本地时间转为 UTC 时间

localDateTime.ToUniversalTime()

1970年1月1日的 UTC 时间

(localDateTime.ToUniversalTime() - new DateTime(1970, 1, 1)).TotalSeconds
相关文章