1

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

4

2 回答 2

2

新的 Storage Client Library 2.0 版本中添加了 Blob 的Exists方法。由于您使用的是较旧的库版本,因此您可以改用FetchAttributes。如果 blob 不存在,它将引发异常。

另一方面,正如 Magnus 也提到的,Upload* 方法如果不成功就会抛出异常。

于 2013-01-22T21:10:51.303 回答
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)
于 2013-11-01T19:07:43.447 回答