26

UploadFromStream を呼び出すと、既定でファイルが上書きされます。ブロブがまだコンテナーにない場合にのみ、ブロブをアップロードするようにするにはどうすればよいですか?

CloudBlockBlob blockBlob = container.GetBlockBlobReference(blobName);
blockBlob.UploadFromStream(stream)
4

3 に答える 3

24

BLOB のETagプロパティをチェックするようにコードにアクセス条件を追加します。ワイルドカードが許可されているため、この名前の BLOB に etag がない場合にのみアップロードを許可しますこのブロブ名が存在します)。

以下に詳述する StorageException が発生します。

    CloudBlockBlob blockBlob = container.GetBlockBlobReference(blobName);
    try {
        blockBlob.UploadFromStream(stream, accessCondition: AccessCondition.GenerateIfNoneMatchCondition("*"));
    } catch (StorageException ex) {
        if (ex.RequestInformation.HttpStatusCode == (int)System.Net.HttpStatusCode.Conflict) {
            // Handle duplicate blob condition
        }
        throw;
    }     
于 2013-02-18T14:28:42.950 に答える