c# - 在写入期间锁定 Azure blob

标签 c# azure azure-blob-storage

我必须更新存储为 Azure blob 的大文件。此更新将需要几秒钟,我需要确保没有其他客户端获得部分更新的文件。

https://learn.microsoft.com/en-us/azure/storage/common/storage-concurrency 中所述锁定文件进行写入应该很容易,但据我了解,其他客户端仍然能够读取该文件。我可以使用读锁,但这意味着只有一个客户端可以读取该文件,而这不是我想要的。

根据Preventing azure blob from being accessed by other service while it's being created似乎至少新文件将在上传结束时“提交”,但我找不到更新现有文件时会发生什么的信息。

所以,问题是:其他客户端在更新(替换)操作期间会读取什么?

  • 他们会读取旧文件直到提交新数据还是
  • 他们会读取部分更新的文件内容吗?

最佳答案

我对该场景进行了测试(我没有找到任何关于此的官方文档),用 600M 文件更新 blob 中的 400M 文件。在更新期间(开始更新后大约10秒),使用代码读取正在更新的blob。

测试结果是,更新时只能读取旧文件。

关于c# - 在写入期间锁定 Azure blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53980282/

相关文章:

c# - Ruby 相当于 C# 的 ??运算符(operator)

python - 如何从python API azure sdk获取azure规模集实例的公共(public)IP?

azure - 使用pyspark从Azure blob存储读取(txt,csv)文件

没有 EndInvoke 的 C# 异步调用?

c# - XAML ItemsSource 和 SelectedItem 绑定(bind)声明顺序很重要吧?

ruby-on-rails - SSH 连接关闭后,Rails 服务器(命令)不会持续存在

python - 部署 : ImportError: No module named azure. storage.blob 时在 azure 笔记本中出现错误

c - LibCurl : Upload file to azure blob storage and Authorization

javascript - 如何读取Azure函数HTTP请求的参数并使用blob存储中的文件进行响应?

c# - 如何用递归方法实现并行?