Azure存储 - CloudBlob.UploadFile - 如何验证上传成功?

时间:2013-01-18 15:13:09

标签: c#-4.0 azure-storage azure-storage-blobs

我正在编写自动测试,我需要检查上传是否成功。 我怎么做?为什么没有FileExist方法?

2 个答案:

答案 0 :(得分:2)

在新的Storage Client Library 2.0版本中添加了

Exists blob方法。由于您使用的是较旧的库版本,因此您可以使用FetchAttributes。如果blob不存在,它将抛出异常。

另一方面,正如Magnus所提到的,如果上传*方法没有成功,就会抛出异常。

答案 1 :(得分:1)

我建议检查文件大小,以便在完成数据传输之前关闭服务器的连接示例。

public bool WriteDocumentStream(String documentId, Stream dataStream, long length)
{
  CloudBlobContainer container = BlobClient.GetContainerReference(ContainerName);
  CloudBlob blob = container.GetBlobReference(documentId);
  blob.UploadFromStream(dataStream);

  blob.FetchAttributes();
  bool success = blob.Properties.Length == length;
  if (!success)
    blob.Delete();

  return success;
}

//length should be like this: context.Request.ContentLength 
//(if request have ContentLength defined at headers)