У меня есть несколько файлов в Azure Blob, и после обработки больших двоичных объектов я перемещаю их в другой контейнер.
Файл, который я получаю в папке назначения, является ненужным. Что я делаю не так?
Исходный файл имеет расширение «.log.gz».
[Function("Function1")]
public async Task Run([TimerTrigger("0 */5 * * * *", RunOnStartup = true)] TimerInfo myTimer)
{
//Reading the config file. For local it is local.settings.json
var config = new ConfigurationBuilder()
.AddJsonFile("local.settings.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
string blbobConnectionString = config["AzureWebJobsStorage"];
BlobContainerClient blobContainerClient = new BlobContainerClient(blbobConnectionString, "abc");
BlobContainerClient destinationBlobContainerClient = new BlobContainerClient(blbobConnectionString, "xyz");
var blobs = blobContainerClient.GetBlobsAsync();
await foreach (var blob in blobs)
{
_logger.LogInformation($"Blob Name: {blob.Name}");
BlobClient blobClient = blobContainerClient.GetBlobClient(blob.Name);
using (Stream blobStream = await blobClient.OpenReadAsync())
using (GZipStream decompressionStream = new GZipStream(blobStream, CompressionMode.Decompress))
using (StreamReader reader = new StreamReader(decompressionStream, Encoding.Default))
{
string line;
while ((line = await reader.ReadLineAsync()) != null)
{
// Process the line here
Console.WriteLine(line);
}
BlobClient destinationBlobClient = destinationBlobContainerClient.GetBlobClient(blob.Name);
blobStream.Position = 0;
await destinationBlobClient.UploadAsync(blobStream);
}
blobClient.DeleteAsync(DeleteSnapshotsOption.None);
}
}
Подробнее здесь: https://stackoverflow.com/questions/789 ... azure-blob