Azure Blob拷贝操作便宜吗?
Azure Blob存储没有公开任何类型的“Blob重命名”操作—这听起来很荒谬,因为重命名实体的想法在几乎所有存储系统中都是一项基本操作—Azure的文档没有提及Blob名称在内部的使用方式(例如作为DHT密钥),但是,由于我们可以指定自己的名称,很明显Azure没有使用内容寻址存储模型(因此,一旦Azure存储团队决定允许重命名,应该可以进行重命名) 微软主张,要“重命名”一个blob,你只需复制它,然后删除原来的blob——这似乎效率极低——例如,如果你有一个200GB的视频文件blob,blob名称中有一个拼写错误——除非Azure内部有某种重复数据消除系统——在这种情况下,消除“blob重命名”,因为在内部它实际上是一个“名称复制”操作 不幸的是,blob copy()的当前文档没有描述任何内部流程,事实上,表明blob复制可能是一个非常长的操作: 复制操作的状态,具有以下值:Azure Blob拷贝操作便宜吗?,azure,blob,azure-storage-blobs,Azure,Blob,Azure Storage Blobs,Azure Blob存储没有公开任何类型的“Blob重命名”操作—这听起来很荒谬,因为重命名实体的想法在几乎所有存储系统中都是一项基本操作—Azure的文档没有提及Blob名称在内部的使用方式(例如作为DHT密钥),但是,由于我们可以指定自己的名称,很明显Azure没有使用内容寻址存储模型(因此,一旦Azure存储团队决定允许重命名,应该可以进行重命名) 微软主张,要“重命名”一个blob,你只需复制它,然后删除原来的blob——这似乎效率极低——例如,如果你有一个200GB的视频文件blob,
:复制成功完成成功
:正在进行复制挂起
是否有任何关于Azure Blob复制操作的运行时特征和性质的权威信息?因为您可能已经知道,
复制Blob
操作是一个异步操作,您上面提到的所有事情都是正确的,但有一点需要注意。复制操作在涉及到copyin时是同步的g在同一个存储帐户中。即使在跨存储帐户或在存储帐户中复制Blob时获得相同的状态,但当在同一个存储帐户中执行此操作时,它几乎是瞬间发生的
因此,当您重命名一个blob时,您正在同一个存储帐户(甚至是同一个容器)中创建blob的副本,这是即时的。我不是100%确定内部实现,但是如果我没有弄错的话,在同一个存储帐户中复制blob时,它不会在某个单独的位置复制字节。它只创建两个指针(新blob和旧blob)指向相同的存储数据。一旦你开始对blob进行更改,我想那时它会去更改这些字节
对于Azure存储的内部理解,我强烈建议您阅读该团队几年前发表的论文。请查看我在此处的答案,其中包含本文的链接:。,因为您可能已经知道,
Copy Blob
操作是一种异步操作,您上面提到的所有事情都是正确的一个警告。在同一存储帐户内复制时,复制操作是同步的。即使在跨存储帐户或在存储帐户内复制blob时获得相同的状态,但在同一存储帐户中执行此操作时,复制操作几乎是瞬时发生的
因此,当您重命名一个blob时,您正在同一个存储帐户(甚至是同一个容器)中创建blob的副本,这是即时的。我不是100%确定内部实现,但是如果我没有弄错的话,在同一个存储帐户中复制blob时,它不会在某个单独的位置复制字节。它只创建两个指针(新blob和旧blob)指向相同的存储数据。一旦你开始对blob进行更改,我想那时它会去更改这些字节
对于Azure存储的内部理解,我强烈建议您阅读该团队几年前发表的论文。请查看我在此处的答案,其中有指向该论文的链接: