1

我希望这个问题的答案很简单,但是在查看 Azure Java API 文档后我无法让它工作。

我正在尝试创建一个空的 CloudBlockBlob,稍后会将块上传到它。我之前已经成功上传了块,当在上传第一个块时创建 blob 时,但是当我尝试创建一个没有任何内容的新 blob 时,我似乎什么也得不到(“指定的 blob 不存在”)数据,然后访问它。我需要这个,因为在我的服务中,首先调用以在 Azure 中创建新的 blob,然后使用稍后的调用上传块(此时会检查 blob 是否存在)。是否可以在 Azure 中创建一个空 blob,然后将数据上传到它?我错过了什么?

4

1 回答 1

6

我没有使用过 Java SDK,所以我可能错了,但我尝试使用 C# 代码(存储客户端库 2.0)创建一个空 blob,如果我上传一个空输入流,则会创建一个零字节大小的空 blob。我做了类似以下的事情:

        CloudBlockBlob emptyBlob = blobContainer.GetBlockBlobReference("emptyblob.txt");
        using (MemoryStream ms = new MemoryStream())
        {
            emptyBlob.UploadFromStream(ms);//Empty memory stream. Will create an empty blob.
        }

我确实在 Github 上查看了 Azure SDK for Java 源代码:https ://github.com/WindowsAzure/azure-sdk-for-java/blob/master/microsoft-azure-api/src/main/java/com/ microsoft/windowsazure/services/blob/client/CloudBlockBlob.java并找到了这个“上传”功能,您可以在其中指定输入流。试试看它是否适合你。

于 2013-02-20T14:38:27.193 回答