作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我很确定这是 Windows Azure SDK 的限制(使用最新的 1.4),但必须有一种方法可以解决这个问题,而无需使用手动 REST...
代码:
CloudBlob blob = container.GetBlobReference(url); // works
blob.UploadByteArray(bytes); // works
blob.Metadata["test"] = "public, max-age=259200"; // works
// FAILS with "The metadata specified is invalid. It has characters that are not permitted."
blob.Metadata["x-ms-blob-cache-control"] = "public, max-age=259200";
blob.SetMetadata(); // FAILS due to the 2nd meta data
从我的测试中可以清楚地看出,客户端由于这些破折号“-”而崩溃,但我想不出任何解决方法。设置缓存控制非常重要,也是常见的操作,这让我很困惑为什么我找不到其他人报告这个问题。
我还尝试过对数据进行编码,这在技术上是不必要的,但出于绝望,我还是这么做了。有想法吗?
最佳答案
它最终成为一个愚蠢的 SDK 限制,有一个特定的属性反过来为你设置特定的元数据...我不介意将此属性作为帮助器,但我看不出为什么直接设置元应该不起作用。
blob.Properties.CacheControl = "public, max-age=259200";
blob.UploadByteArray(bytes);
关于Azure CloudBlob SetMetadata 失败并显示 "The metadata specified is invalid. It has characters that are not permitted.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6884073/
我是一名优秀的程序员,十分优秀!