0
我一直在使用下面的代码,我咨询下面跟帖写道 - Use blob-leasing feature in the Azure cloud appWindows Azure中的BLOB租赁
public static void UploadFromStreamWithLease(CloudBlob blob, Stream src, string leaseID)
{
string url = blob.Uri.ToString();
if (blob.ServiceClient.Credentials.NeedsTransformUri)
{
url = blob.ServiceClient.Credentials.TransformUri(url);
}
HttpWebRequest req = BlobRequest.Put(new Uri(url), 90, blob.Properties, BlobType.BlockBlob, leaseID, 0);
BlobRequest.AddMetadata(req, blob.Metadata);
using (var writer = new StreamWriter(req.GetRequestStream()))
{
byte[] content = new byte[src.Length];
writer.Write(readFully(src));
}
blob.ServiceClient.Credentials.SignRequest(req);
req.GetResponse().Close();
}
上面简单的的readFully()方法从流内容到byte []数组。
我一直在使用这个代码一些东西上传到具有有效leaseId任何斑点。直到我转移到Azure SDK的1.4版本,这工作正常。在蔚蓝的SDK的新版本,我得到了req.GetResponse错误400()方法。
可有人请指出是什么在蔚蓝的SDK 1.4多数民众赞成拧这件事有什么改变?
由于 卡皮尔西
当我用小提琴手,看看反应,它说,错误是由于MD5不匹配。错误文本说明“请求中指定的MD5值与服务器计算的MD5值不匹配”。 现在,这一点是才开始升级到ver1.4后发生。这个问题也出现在我使用UploadFromStream()方法的地方。后来我改变了使用CloudBlob.OpenWrite方法来使用BlobStream。但是,我不知道如何写入我已经签订租约的blobstream。 任何想法? – Kapil
是否有任何理由留在SDK 1.4上? SDK 1.5已经出现了几个星期了。它也有一些与斑点的错误,但它们现在也被修复了。 – knightpfhor