it-swarm.com.ru

Как удалить BLOB-объект с помощью функций Azure?

Я создаю функцию Azure, которая запускается, когда изображение загружается или добавляется в определенное хранилище Azure, и выполняет следующие действия: 1.) Изменение размера изображения 2.) Поместите изображение в правильный каталог (используя Выходная привязка) 3.) Удалите исходное изображение большого двоичного объекта, которое было добавлено в хранилище Azure после обработки.

Я закончил с шагами 1 и 2 в процессе, но я нахожу меньше или нет документации об удалении большого двоичного объекта или API, который предоставил бы методы для хранилища Azure. (Используя C #)

Вот пример кода:

#r "System.Drawing"
using System;
using ImageResizer;
using System.Drawing;
using System.Drawing.Imaging;

public static void Run(Stream inputImage, string imageName, Stream resizedImage, TraceWriter log)
{
    // Log the file name and size
    log.Info($"C# Blob trigger function Processed blob\n Name:{imageName} \n Size: {inputImage.Length} Bytes");

    // Manipulate the image
    var settings = new ImageResizer.ResizeSettings
    {
        MaxWidth = 400,
        Format = "png"
    };

    ImageResizer.ImageBuilder.Current.Build(inputImage, resizedImage, settings);

    // Delete the Raw Original Image Step
}
7
Raven

Чтобы удалить BLOB-объект, вам необходимо

var container = blobClient.GetContainerReference(containerName);
var blockBlob = container.GetBlockBlobReference(fileName);
return blockBlob.DeleteIfExists();

Убедитесь, что вы закрыли все потоки перед тем, как попробовать, чтобы изображение больше не использовалось.

7
albattran

Убедитесь, что импортированы правильные ссылки:

#r "Microsoft.WindowsAzure.Storage"
using Microsoft.WindowsAzure.Storage.Blob;

Затем вы можете использовать CloudBlockBlob в качестве типа параметра и удалить его:

public static void Run(CloudBlockBlob myBlob, string name, TraceWriter log)
{
    myBlob.DeleteIfExists();
}
7
Tim P.

Вы можете использовать несколько типов ввода для своей функции, когда вы используете C #, вот webjobs sdk шпаргалка подробно описывающая большинство доступных.

В вашем случае вы можете запросить ваше входное изображение как CloudBlockBlob , у которого есть метод удаления. Вы можете вызвать это внутри функции изменения размера или в отдельно запущенной функции, чтобы удалить завершенные большие двоичные объекты. Возможно, вам придется изменить привязку direction на inout, см. здесь .

В настоящее время нет необходимости выполнять автоматическую очистку.

0
Matt Mason