WebJob读取和写入相同的Azure blob

时间:2016-01-11 15:55:20

标签: azure-storage-blobs azure-webjobs azure-webjobssdk azure-queues

我正在尝试使用webjob处理上传到azure的图像。我有2个容器imagethumbs

目前,我正在阅读image容器,创建缩略图并使用以下代码将其写入thumbs容器,效果很好。

public static void GenerateThumbnail([QueueTrigger("addthumb")] ImageDTO blobInfo,
                [Blob("images/{Name}", FileAccess.Read)] Stream input, [Blob("thumbs/{Name}")] CloudBlockBlob outputBlob)
    {
        using (Stream output = outputBlob.OpenWrite())
        {
            ConvertImageToThumbnail(input, output, blobInfo.Name);
            outputBlob.Properties.ContentType = GetMimeType(blobInfo.Name);
        }
    }

现在,我还要调整image容器中的主图像(如果它太大),压缩它并用它替换原始图像。

有没有办法读取和写入同一个blob?

1 个答案:

答案 0 :(得分:1)

是的,你可以读/写同一个blob。例如,您可以使用input更改CloudBlockBlob绑定以绑定到FileAccess.ReadWrite

public static void GenerateThumbnail(
    [QueueTrigger("addthumb")] ImageDTO blobInfo,
    [Blob("images/{Name}", FileAccess.ReadWrite)] CloudBlockBlob input,
    [Blob("thumbs/{Name}")] CloudBlockBlob output)
{
    // Process the image  
}

然后,您可以访问该blob上的OpenRead/OpenWrite流方法以读取图像blob并根据需要处理/修改它。