0

我每天有 4000 个文件,每个文件平均大小为 30Kb,位于我们本地文件系统上的一个文件夹中。我想对文件名中的详细信息应用条件逻辑(几个和/或条件),仅将符合条件的文件移动到另一个文件夹中。我尝试将获取源文件夹中所有文件的元数据活动与过滤器活动链接起来,该过滤器活动将条件逻辑与具有嵌入式复制活动的每个活动一起应用。这可行,但处理文件需要数小时。在调试中运行管道时,输出窗口会列出作为行项目复制的每个文件。我已将 for each 中的批次计数设置增加到 50,但并没有改善。有没有办法将过滤器活动直接链接到复制活动而不使用每个活动?即将过滤器中的集合直接传递到副本的源中。或者,我们的一些其他管道仅使用指向源文件夹的复制活动,我们使用 * 和 ? 的组合使用简单的正则表达式配置其文件过滤器设置,这非常快。但是,在这个特定场景中,我的条件逻辑更加复杂,我需要将每个文件名中的属性与值进行比较,以决定是否应该移动文件。文件过滤器设置允许动态内容,因此我可以完全删除过滤器活动,将副本指向源文件夹并将条件逻辑放在文件过滤器的动态内容区域中,但是我如何获得对文件名的引用来进行条件检查?

4

1 回答 1

0

这是一种解决方案:

  1. 将数组输出作为文本写入 Blob 存储(或任何地方)中的 .json。以下是使其工作的步骤:

复制数据源:

复制数据源

复制数据接收器:

复制数据源

  1. 将 json(数组输出)写入具有您要复制的文件名称的文本文件。

复制活动源(将其从 JSON 获取到 .txt):

第二次复制将 json 转换为 txt

Sink 将是 Blob 中的 .txt 文件。

  1. 在您的主要复制活动中使用该文本文件并使用以下设置:

使用文件列表复制

这应该会复制您在过滤器活动中标识的所有文件。

我意识到这是一种解决方法,但实际上是您所要求的唯一解决方案。否则,无法将筛选活动直接链接到复制活动。

于 2021-08-17T18:55:39.493 回答