Azure媒体服务限制文件大小
查看Azure Media Service REST API,我看不到任何限制文件上载大小的方法: 例如,我希望用户直接将文件上载到azure,但将其限制为50mb。我不想首先通过服务器代理请求,因为这似乎是不必要的带宽使用 有可能在Azure上实现这一点吗?如果无法直接在Azure上执行此操作,那么间接限制文件上载大小的最佳方法是什么?从,可能类似的方法会起作用(最大64MB): 从中,可能会使用类似的方法(最大64MB):Azure媒体服务限制文件大小,azure,azure-media-services,Azure,Azure Media Services,查看Azure Media Service REST API,我看不到任何限制文件上载大小的方法: 例如,我希望用户直接将文件上载到azure,但将其限制为50mb。我不想首先通过服务器代理请求,因为这似乎是不必要的带宽使用 有可能在Azure上实现这一点吗?如果无法直接在Azure上执行此操作,那么间接限制文件上载大小的最佳方法是什么?从,可能类似的方法会起作用(最大64MB): 从中,可能会使用类似的方法(最大64MB): 如果不想代理上载,则需要使用浏览器端验证。HTML5有了答案 发件
如果不想代理上载,则需要使用浏览器端验证。HTML5有了答案 发件人:
if(文件读取器的类型!=“未定义”){
var size=document.getElementById('myfile')。文件[0]。大小;
//检查文件大小
}
当然,这并不能阻止用户使用诸如Postman之类的工具来绕过限制,但我的意思是,拜托
如果您对视频的持续时间而不是原始文件大小更感兴趣,则绝对需要首先代理内容字节–有关更多信息,请参阅此线程:如果不想代理上载,则需要使用浏览器端验证。HTML5有了答案 发件人:
if(文件读取器的类型!=“未定义”){
var size=document.getElementById('myfile')。文件[0]。大小;
//检查文件大小
}
当然,这并不能阻止用户使用诸如Postman之类的工具来绕过限制,但我的意思是,拜托
如果您对视频的持续时间而不是原始文件大小更感兴趣,则绝对需要首先代理内容字节–有关更多信息,请参阅此线程:如果您没有使用代理解决方案,那么您就是在向最终用户公开。它没有任何尺寸限制。您可以采取的唯一缓解措施是限制saas签名有效的时间,因此用户有时间限制进行上传。客户端上的任何验证都只能部分缓解上传大文件的问题。如前所述,用户可以通过调试客户端脚本从ui获取saas链接,并在时间范围内将任何内容大小上传到该链接,该链接是有效的
Azure storage不公开任何API来限制文件上载大小,因此目前唯一适合您的方案是使用代理。如果您不使用代理解决方案,则向最终用户公开。它没有任何尺寸限制。您可以采取的唯一缓解措施是限制saas签名有效的时间,因此用户有时间限制进行上传。客户端上的任何验证都只能部分缓解上传大文件的问题。如前所述,用户可以通过调试客户端脚本从ui获取saas链接,并在时间范围内将任何内容大小上传到该链接,该链接是有效的
Azure storage没有公开任何API来限制文件上载大小,因此目前针对您的场景的唯一防弹解决方案是使用代理。这要求我的服务器充当我试图避免的代理。这要求我的服务器充当我试图避免的代理。
protected void btnUpload_Click(object sender, EventArgs e)
{
CloudBlobClient blobClient;
var storageAccount = CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("mycontainer");
container.CreateIfNotExist();
var permission = container.GetPermissions();
permission.PublicAccess = BlobContainerPublicAccessType.Container;
container.SetPermissions(permission);
string name = fu.FileName;
CloudBlockBlob blob = container.GetBlockBlobReference(name);
blob.UploadFromStream(fu.FileContent);
int maxSize = ....;
if (fu.PostedFile.ContentLength > maxSize)
{
// Handle error: file too large
} else {
blob.UploadFromStream(fu.FileContent);
}