C# 如何使用Azure函数删除blob?
我正在创建一个Azure函数,该函数在图像上载或添加到特定Azure存储时触发,它执行以下操作: 1.)调整图像大小 2.)将映像放入正确的目录(使用输出绑定) 3.)删除处理后添加到Azure存储的原始blob映像 我已经完成了流程中的步骤1和步骤2,但是我发现关于删除blob或API的文档很少甚至没有,这些文档将公开Azure存储的方法。(使用C#) 以下是示例代码:C# 如何使用Azure函数删除blob?,c#,azure,azure-functions,C#,Azure,Azure Functions,我正在创建一个Azure函数,该函数在图像上载或添加到特定Azure存储时触发,它执行以下操作: 1.)调整图像大小 2.)将映像放入正确的目录(使用输出绑定) 3.)删除处理后添加到Azure存储的原始blob映像 我已经完成了流程中的步骤1和步骤2,但是我发现关于删除blob或API的文档很少甚至没有,这些文档将公开Azure存储的方法。(使用C#) 以下是示例代码: #r "System.Drawing" using System; using ImageResizer; using Sy
#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
}
在使用C#时,您可以对函数使用多种输入类型,下面是webjobs sdk,详细介绍了大多数可用的输入类型 在您的情况下,您可以将输入图像请求为,它有一个delete方法。您可以在调整大小函数中调用此函数,也可以在单独触发的函数中调用此函数来删除已完成的blob。您可能需要将绑定
方向更改为inout
,请参阅
目前没有进行自动清理的绑定。要删除blob,您需要
var container = blobClient.GetContainerReference(containerName);
var blockBlob = container.GetBlockBlobReference(fileName);
return blockBlob.DeleteIfExists();
请确保在尝试此操作之前关闭所有流,以便图像不再使用。确保导入了正确的引用:
#r "Microsoft.WindowsAzure.Storage"
using Microsoft.WindowsAzure.Storage.Blob;
然后可以使用CloudBlockBlob作为参数类型并将其删除:
public static void Run(CloudBlockBlob myBlob, string name, TraceWriter log)
{
myBlob.DeleteIfExists();
}
如果您使用的是最新的库
Azure.Storage.Blobs
你可以这样删除它
BlobClient client = new BlobClient("connectionString", "container", "blobName");
client.DeleteIfExists();
已尝试,但出现错误:Microsoft.Azure.WebJobs.Host:错误索引方法“Functions.ImageUploadToBlobTrigger”。Microsoft.Azure.WebJobs.Host:无法将BlobTrigger绑定到类型“Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob”。是否将方向更改为inout
?这里有一个可能也有帮助的示例:谢谢,是的,我将方向改为inout。但是仍然有相同的错误。当使用命令绑定到云类型时,似乎存在一个问题。美好的这就是我真正想要的。ThanksHow您正在获取blobClient吗?可以通过安装WindowsAzure.Storage nuget软件包来获取blobClient。然后将名称空间Microsoft.WindowsAzure.Storage.Blob添加到项目中。很好,正是我想要的,谢谢!