Azure函数在原地调整图像大小

10 浏览
0 Comments

Azure函数在原地调整图像大小

我正在尝试使用Azure函数从Blob存储调整图像大小——这是一个简单的任务,有很多示例,效果很好。但是,只有在将调整大小后的图像保存到不同的文件时才能正常工作。我的问题是,我希望用调整大小后的图像替换原始图像,并保持相同的位置和名称。

当我将输出Blob设置为与输入Blob相同时,它会一遍又一遍地触发,而无法完成。

有没有办法使用Azure函数更改Blob并将结果存储在同一文件中?

0
0 Comments

问题的原因是Blob触发器会使用存储日志来监视新的或更改的Blob。它会将更改的Blob与Azure存储帐户中名为azure-webjobs-hosts的容器中的Blob Receipts进行比较。每个Receipt都与一个ETag相关联,因此当更改Blob时,ETag会更改,Blob会再次提交给函数进行处理。除非你想要在函数内部更新Receipts中的ETag(不确定是否可行),否则你的更改的文件将会重新处理。

解决方法是接受两个对同一文件的调用,但添加对传入文件大小的检查。如果大小已经正常,不执行任何操作并退出,而不再更改文件。这样可以打破循环。

0