我最近开始为Azure TableStorage进行一些测试,我注意到一件事,就是他们显然在为自己的ETag做一些奇怪的时间戳。
我想检查一些与数据上传的确切字节限制有关的内容,但问题似乎是这并不可靠,因为实体有时也会变得太大或太小。
问题是:
ETag显然带有时间戳,但并非一致地带有 。
取决于您是否在毫秒范围内达到了一定的精度,您可能最终得到一个像这样的标记:
W/\"datetime'2018-11-27T07%3A58%3A29.5163963Z'\"
或类似的
W/\"datetime'2018-11-27T07%3A58%3A29.65348Z'\"
考虑ETag大小的计算公式为:
BaseSize (8) + Property name length * 2 ("ETag" -> 8) + 4 + ETag.length *2
这可能会导致整个实体大小的差异。
也无法在执行TableOperation之前自行设置常量ETag,因为存储端点似乎仍然会覆盖它。
有什么方法可以强制这些值的精度保持恒定吗?