Вы можете видеть файлы в том виде, в котором они находятся, в Обозревателе хранилища. Похоже, у них правильный тип контента.

Мои функции загрузки и скачивания следующие:
Код: Выделить всё
public async Task CreateCSV(string reference, IEnumerable data)
{
using (var writer = new StringWriter())
using (var csv = new CsvWriter(writer, CultureInfo.InvariantCulture))
{
csv.WriteRecords(data);
await SaveToBlobStorage(reference, Encoding.UTF8.GetBytes(writer.ToString()));
}
}
public async Task SaveToBlobStorage(string filePath, byte[] data)
{
BlobContainerClient container = new BlobContainerClient(Helpers.StorageConnection(), Helpers.ContainerName());
var blob = container.GetBlobClient(filePath);
using (var stream = new MemoryStream(data, writable: false))
{
blob.Upload(stream);
var type = MimeTypesMap.GetMimeType(filePath);
await blob.SetHttpHeadersAsync(new BlobHttpHeaders { ContentType = $"{type}; charset=utf-8" });
}
}
Код: Выделить всё
public async Task GetCSV(string reference)
{
var stream = await GetStreamFromStorage(reference);
stream.Seek(0, SeekOrigin.Begin);
using var reader = new StreamReader(stream, Encoding.UTF8);
using var csv = new CsvReader(reader, CultureInfo.InvariantCulture);
csv.Configuration.Delimiter = ",";
csv.Configuration.HeaderValidated = null;
csv.Configuration.MissingFieldFound = null;
IEnumerable result = csv.GetRecords();
return result.ToList();
}
public async Task GetStreamFromStorage(string file)
{
var blobClient = new BlockBlobClient(Helpers.StorageConnection(), Helpers.ContainerName(), file);
var memoryStream = new MemoryStream();
await blobClient.DownloadToAsync(memoryStream);
return memoryStream;
}
Подробнее здесь: https://stackoverflow.com/questions/791 ... -blob-stor