【问题标题】:Trying to acquire a lease on a new blockblob gets me a 404试图获得一个新块的租约让我得到一个 404
【发布时间】:2016-06-28 08:35:55
【问题描述】:

当我尝试获取要创建的 CloudBlockBlob 的租约时,我得到一个 404。

lease = blockBlob.AcquireLease(_leaseTimeOut, null);
blockBlob.UploadFromByteArrayAsync(contentBytes, 0, contentBytes.Length).Wait();

我可以想象这是因为它还不存在,但是我如何在要创建的 blob 上使用租约。我不想在这里出现并发错误。

【问题讨论】:

    标签: azure-storage azure-blob-storage


    【解决方案1】:

    你是对的,问题是此时尚未在服务中创建 blob。获取租约的调用是对服务的调用,因此如果在不存在的 blob 上调用它会失败。

    目前无法在创建 blob 的同时租用它。要创建块 blob,您需要向其写入至少一个字符。完成此操作后,您可以立即获得租约。

    根据您处理安全性的方式,您可以通过确保容器是私有的,直到您租用 blob(假设其他客户端没有使用帐户密钥进行访问)来排除对 blob 的访问。或者,您可以编写应用程序,以便用户必须拥有 SAS 才能写入 Blob,然后确保 SAS 仅在 Blob 可供其他客户端写入时才授予对 Blob 的访问权限。

    最后,请参阅https://azure.microsoft.com/en-us/documentation/articles/storage-concurrency/#managing-concurrency-in-blob-storage,了解有关使用 Blob 存储开发并发应用程序的指南。

    【讨论】:

    • 谢谢。它是一种管理一切的服务,用户永远不会看到 Azure 在图片中,所以一切都是私有的。用户只能看到字节。
    猜你喜欢
    • 2020-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-27
    相关资源
    最近更新 更多