【问题标题】:Azure function resize image in placeAzure 函数就地调整图像大小
【发布时间】:2017-07-19 21:44:03
【问题描述】:

我正在尝试使用 Azure 函数从 blob 存储调整图像的大小 - 简单的任务,大量示例,效果很好,但是。仅当调整大小的图像保存到不同的文件时才有效。我的问题是我想用调整大小的图像替换原始图像 - 使用合理的位置和名称。

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

有什么方法可以使用 azure 函数更改 blob 并将结果存储在同一个文件中?

【问题讨论】:

  • 请看看这是否回答了您的问题:stackoverflow.com/questions/44304746/….
  • 不,它没有回答我的问题。如果 blob 不存在 - 它不会触发函数。正如我所说 - 我的问题是,将调整大小的图像保存到与源触发器相同的 blob 再次起作用。这是因为 blob 在创建和更改 blob 时触发。我想知道我是否可以停止触发更新并仅在更改时触发
  • 我猜你可以检查传入文件的大小是否已经OK,如果是则什么都不做(所以该函数将被调用两次然后停止)。
  • @Mikhail 这是我现在要去的解决方案。据我搜索,没有办法停止从 azure 函数触发 blob 触发器。是的,你的解决方案有效(我已经检查过了)

标签: azure azure-functions


【解决方案1】:

最简单的选择是接受对同一个文件的两次调用,但添加对传入文件大小的检查。如果大小已经确定,则什么也不做并退出而不再次更改文件。这应该会让你脱离循环。


Blob 触发器使用存储日志来监视新的或更改的 Blob。然后,它将更改的 blob 与 Azure 存储帐户中名为 azure-webjobs-hosts 的容器中的 Blob Receipts 进行比较。每张收据都有与之关联的ETag,因此当您更改一个blob时,ETag会更改并且该Blob会再次提交给函数。

除非您想在函数内花哨并更新收据中的ETag(不确定是否可行),否则您更改的文件将进行重新处理。

【讨论】:

    猜你喜欢
    • 2012-02-04
    • 2010-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-30
    相关资源
    最近更新 更多