Я пытаюсь настроить старую логику для поддержки файлов из BLOB-объектов. Может ли кто-нибудь подсказать мне, как открыть файл PDF, который хранится в хранилище BLOB-объектов Azure.
Я попытался найти и нашел ответ Как загрузить файл в браузер из хранилища BLOB-объектов Azure
который использует конфигурацию SAS для этого (если я не ошибаюсь).
Есть ли способ сделать это путем преобразования в байты?
Более ранняя логика, чтобы открыть файл PDF из расположения Windows
Response.Buffer = true;
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/pdf";
Response.AppendHeader("content-disposition", "inline; filename=" + mapid + ".pdf");
FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.Read, FileShare.Read);
BinaryReader br = new BinaryReader(fs);
Byte[] dataBytes = br.ReadBytes((int)(fs.Length - 1));
Response.BinaryWrite(dataBytes);
br.Close();
fs.Close();
Я переписываю логику для чтения файла из BLOB-объекта, ниже приведен код, который я пробовал до сих пор,
Byte[] dataBytes1;
CloudBlockBlob blobfile = GetStorageAccount(true).GetBlockBlobReference(filename);
blobfile.FetchAttributes();
using (StreamReader blobfilestream = new StreamReader(blobfile.OpenRead()))
{
dataBytes1 = blobfilestream.CurrentEncoding.GetBytes(blobfilestream.ReadToEnd());
}
Byte[] value = BitConverter.GetBytes(dataBytes1.Length - 1);
Response.BinaryWrite(value);
Но файл не открывается с ошибкой «Не удалось загрузить».
Кто-нибудь может направить меня, если это хороший подход к этому?