读取和写入同一个 Azure blob 的 WebJob
WebJob to read from and write to the same Azure blob
我正在尝试使用 webjob 处理上传到 azure 的图像。我有 2 个容器 image
和 thumbs
。
目前,我正在从 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?
是的,您可以 read/write 到同一个 blob。例如,您可以使用 FileAccess.ReadWrite
:
更改 input
绑定以绑定到 CloudBlockBlob
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 并根据需要 process/modify 它。
我正在尝试使用 webjob 处理上传到 azure 的图像。我有 2 个容器 image
和 thumbs
。
目前,我正在从 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?
是的,您可以 read/write 到同一个 blob。例如,您可以使用 FileAccess.ReadWrite
:
input
绑定以绑定到 CloudBlockBlob
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 并根据需要 process/modify 它。