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のAzureSDKfor 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 に答える