验证已上传到azure blob的视频的持续时间

时间:2017-04-28 13:35:37

标签: .net azure video azure-web-sites azure-storage-blobs

我正在构建一个应用程序,用户可以在其中上传关于自己的简短肖像视频,以便在社区内进行宣传。关键字很短。我想阻止用户上传1小时的史诗。

我已经尝试找出一种在客户端验证这一点的方法,但是我已经决定在服务器端执行所有可用的视频格式。 这就是我撞到隔壁的地方。

我通过引用直接将用户视频(通过预期的大文件)上传到我的blob存储中。此后,文件将被复制到与azure媒体服务帐户链接的另一个存储中。

在上传和复制到第二个存储之间,我想验证持续时间。从我试过的库( Accord NReco MediaToolkit )都以某种方式失败(不支持在azure网站上运行,不读取blob或类似问题。)

所以我此刻陷入了困境。有没有人有任何想法如何做到这一点,而不必先通过azure媒体服务进行编码?

1 个答案:

答案 0 :(得分:1)

我只需上传到%TEMP%(扩展为d:\local\temp)。 App Service中的本地存储空间。然后,所有这些库应该对本地文件系统起作用,包括我个人最喜欢的MediaInfo

对于标准层,似乎有足够的空间,这里是Kudu报告的内容:

d:\local usage: 230,397 MB total; 188,630 MB free

所以,

upload file
    |
    |                         too long?
check length with video lib ------------- notify user, cleanup local storage
    |
    | all good?
    | 
async upload to blob storage (Media Services)
    |
async cleanup local storage

使用夜间WebJob清理%TEMP%以解决过时/不完整的上传(即删除超过6小时的文件),以防万一由于不可预见的原因导致对文件系统的删除调用失败。