在Azure中创建空CloudBlockBlob

时间:2013-02-19 16:47:37

标签: java azure

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

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

1 个答案:

答案 0 :(得分:3)

我没有使用过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并找到了这个“上传”功能,您可以在其中指定输入流。试一试,看看它是否适合你。