Sto provando a passare un BLOB di archiviazione Azure attraverso un ashx. Sul blockBlob.DownloadToStream (MemoryStream) è gettare la seguente eccezione: Microsoft.WindowsAzure.Storage.StorageException: Calculated MD5 does not match existing property
Archiviazione di Azure L'MD5 calcolato non corrisponde alla proprietà esistente
Lo so che è trovare il blob corretta. Se metto un container e un percorso che non esistono, mi dà invece un'eccezione 404.
Ho cercato su google per suggerimenti su ciò che potrebbe causare questo errore ma non è utile nulla di utile. Qualcuno ha qualche idea su cosa potrebbe causare questo? Ho riscritto questo codice in un paio di modi diversi negli ultimi due giorni ma muore sempre su DownloadToStream.
using Microsoft.WindowsAzure;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Auth;
using Microsoft.WindowsAzure.Storage.Blob;
public void ProcessRequest(HttpContext context) {
// Retrieve storage account from connection string.
Microsoft.WindowsAzure.Storage.CloudStorageAccount storageAccount = Microsoft.WindowsAzure.Storage.CloudStorageAccount.Parse(Microsoft.WindowsAzure.CloudConfigurationManager.GetSetting("StorageConnectionString"));
// Create the blob client.
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve reference to a previously created container.
CloudBlobContainer container = blobClient.GetContainerReference("gmt");
// Retrieve reference to blob named "articles/142/222.jpg".
CloudBlockBlob blockBlob = container.GetBlockBlobReference("articles/142/222.jpg");
using (var memoryStream = new MemoryStream()) {
blockBlob.DownloadToStream(memoryStream);
byte[] photoByte = ReadFully(memoryStream);
context.Response.Clear();
context.Response.ContentType = "image/jpeg";
context.Response.OutputStream.Write(photoByte, 0, photoByte.Length);
}
}
public static byte[] ReadFully(Stream input) {
input.Position = 0;
using (MemoryStream ms = new MemoryStream()) {
input.CopyTo(ms);
return ms.ToArray();
}
}
Grazie. Ci proverò stasera. Ho caricato 13 concerti di immagini usando l'FTP per Azure Blob Storage Bridge. Ogni file che ho provato mi dà questo messaggio di errore. Mi chiedo se questo è ciò che ha danneggiato tutti i file. –
che ha reso l'eccezione andare via grazie. l'ashx sta ancora restituendo solo 0 byte. booooooo ... –
Basta controllare la posizione di 'ms' nella funzione' ReadFully() 'del tuo. Assicurati che sia anche a 0. –