代码之家  ›  专栏  ›  技术社区  ›  Andrew Buikema

设置触发器以监视新文件夹Azure Logic Apps

  •  1
  • Andrew Buikema  · 技术社区  · 6 年前

    我正在尝试创建一个逻辑应用程序,该应用程序将在创建文件时将文件从我的FTP服务器传输到我的Azure文件共享。触发器正在监视的文件夹的结构是按日期构建的(见下文)。每天添加一个文件,就会创建一个新文件夹,因此我需要触发器来检查新的子文件夹,但我不想每天都进入应用程序来更改触发器查看的文件夹。这可能吗?

    下面是我的文件夹(称为数据)结构,每天添加一个文件,就会创建一个新文件夹。

    -DATA-
    
    2016-10-01
    2016-10-02
    2016-10-03
    ...
    
    2 回复  |  直到 6 年前
        1
  •  1
  •   Steven Van Eycken    6 年前

    FTP连接器使用可配置的轮询,您可以在其中设置它应该查找文件的次数。触发器当前不支持动态文件夹。但是,您可以尝试以下方法:

    • 通过重复触发逻辑应用程序(与FTP触发器的原理相同)
    • 操作:创建一个变量来存储日期时间(文件夹命名中使用的格式)
    • 操作:列出文件夹中的文件(在这里,您应该能够使用您创建的变量动态设置文件夹名称)
    • 对于文件夹中的每个文件
      • 操作:获取文件内容
      • 无论您需要对文件执行什么操作(如果您需要对每个文件执行多个处理操作,请调用嵌套逻辑应用程序,如果您需要按文件处理流的重新提交,则这是智能的)

    为了避免每次都拾取每个文件,您需要找到一种方法来排除在早期运行中已处理的文件。因此,要么在处理后将文件重命名为可在下次运行时排除的扩展名,要么将文件移动到根目录中的子文件夹“processed\datetime”。

    此解决方案将需要更多的操作,因此成本将更高。我还没有试过,但我认为这应该行得通。或者至少这是我尝试建立的方法。

        2
  •  1
  •   DTRT    6 年前

    遗憾的是,使用当前的FTP连接器无法实现您的要求。现在没有任何真正伟大的解决方案…:(

    顺便说一句,我已经见过这种模式好几次了,正如你所看到的,它只会导致比它能解决的问题更多的问题,实际上是0。:)

    如果您拥有FTP服务器,最好将文件放在一个文件夹中。

    如果您不拥有FTP服务器,请礼貌地告诉所有者,这种模式会导致问题,对您没有任何帮助,因此请将文件放在一个文件夹中;)