如何为Azure Blob存储的IfMatch条件头赋值"*"
解决Azure Blob存储中IfMatch设置为"*"的类型错误问题
这个问题我之前也碰到过,核心原因是类型不匹配:BlobRequestConditions的IfMatch属性要求的是Azure.ETag类型的实例,而不是直接的字符串值,所以直接赋值"*"会触发隐式转换错误。
你可以通过以下两种方式正确设置匹配所有ETag的条件:
方式一:使用SDK提供的便捷静态字段(推荐)
Azure SDK已经为"*"这种匹配所有ETag的场景提供了专门的静态字段ETag.All,直接使用它更直观简洁:Conditions = new BlobRequestConditions() { IfMatch = ETag.All }方式二:通过Parse方法创建ETag实例
如果更习惯用字符串"*"来表达,也可以调用ETag.Parse()方法将字符串转换为ETag类型:Conditions = new BlobRequestConditions() { IfMatch = ETag.Parse("*") }
两种方式都能实现你想要的“匹配任何ETag”的效果,推荐第一种,因为它是SDK明确提供的语义化写法,可读性更强。
内容的提问来源于stack exchange,提问作者Sarahrb
相关产品推荐
相关产品推荐

