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