问题描述
我正在创建一个Azure函数,该函数将在图像上载或添加到特定Azure存储时触发,并执行以下操作:1.)调整图像大小2.)将图像放置到正确的目录(使用输出绑定)3.)删除在处理后添加到Azure存储中的原始Blob映像.
I am creating an Azure function that triggers when an image is uploaded or added to a particular Azure Storage, and it does the following:1.) Resize the image2.) Put the image to correct directory (using Output binding)3.) Delete the original blob image that was added to Azure Storage after processing.
我已经完成了该过程中的步骤1和2,但是我发现关于删除Blob或API的文档很少,甚至没有,这些API会公开Azure Storage的方法. (使用C#)
I am done with steps 1 and 2 in the process, but I'm finding less to no documentation about deleting a blob or an API that would expose methods for Azure Storage. (Using 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
}
推荐答案
要删除Blob,您需要
To delete a blob, you need to
var container = blobClient.GetContainerReference(containerName);
var blockBlob = container.GetBlockBlobReference(fileName);
return blockBlob.DeleteIfExists();
在尝试执行此操作之前,请确保关闭所有流,以便不再使用该图像.
Make sure that your close all streams before you try this so the image is no longer in use.
这篇关于如何使用Azure Functions删除Blob?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!