您可以在 Azure blob 上手动设置 etag 和 last-modified 吗?

Can you manually set etag and last-modified on Azure blobs?

为了冗余和规模,我在全球范围内手动将 blob 复制到多个 Azure 存储帐户。这些帐户在 CDN 的源组中构成多个 'origins'。因此,当来自世界某个地方的请求通过时,这些存储帐户中的任何一个都可以为其提供服务,但是 URL 的 blob 内容应该是相同的。

由于它们是手动复制的,因此它们将具有不同的 etag 和上次修改时间戳。我不希望缓存(在 CDN 或客户端上)每次访问不同的存储帐户时都认为内容不同,因为 etag/last-modified 与已缓存的版本不匹配。理想情况下,我希望 blob 的 etag 和 last-modified 属性在每个存储帐户中都相同(与 blob 内容相同)。

我在 REST APIs 或 Azure .NET APIs 中找不到任何可以设置的地方。我确实找到了一个旧的 Java API (https://docs.microsoft.com/en-us/java/api/com.microsoft.azure.storage.blob.blobproperties.setetag) 所以它看起来是或在某个时候是可设置的。

有人知道这是否可以通过任何 API 或端点实现吗?还是我做错了?

Can you manually set etag and last-modified on Azure blobs?

简单的回答是你不能。 Azure blob 上的 etag 和上次修改日期都是系统定义的属性,并且在修改 blob 时由存储服务设置。