Я пытаюсь обрабатывать изображения, загруженные в azure с помощью webjob. У меня есть 2 контейнера image
и thumbs
.WebJob, чтобы читать и писать на тот же Azure blob
В настоящее время я читаю из контейнера 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
контейнера (если он слишком велик), сжать его и заменить оригинал с ним.
Есть ли способ читать и писать в один и тот же блокнот?
Отлично, я попробую! – CoOl
Глядя на ваш пример, я полагаю, мне не нужно использовать очередь вообще? Могу ли я запускать функцию webjob, когда новый контейнер добавляется в контейнер? – CoOl
Я просто обновил пример :) Технически вам не нужна очередь, но использование очереди является рекомендуемым шаблоном. 'BlobTrigger' может запускаться автоматически, но могут быть задержки, как описано [здесь] (https://azure.microsoft.com/en-us/documentation/articles/websites-dotnet-webjobs-sdk-storage-blobs-how- к /). – mathewc