代码之家  ›  专栏  ›  技术社区  ›  Sossenbinder

我可以强制Azure表存储返回一个固定长度的ETag吗?

  •  0
  • Sossenbinder  · 技术社区  · 6 年前

    我最近开始为Azure表存储做一些测试,我注意到一件事,他们显然在为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
    

    这可能导致整个实体大小的差异。

    在执行table操作之前自己设置一个常量ETag也是不可能的,因为存储端点似乎无论如何都会覆盖它。

    0 回复  |  直到 6 年前