创建存储事件触发器时,在@triggerBody().folderPath中找到触发事件的文件的路径。但是,该路径还包含容器名称。我希望通过在数据流通配符路径选项中使用@triggerBody().folderPath来动态设置数据流输入文件夹。此选项已设置容器名称。如何获取 * 不带 * 容器名称的文件路径?
@triggerBody().folderPath
ilmyapht1#
2.更改参数代码
"parameters": { "folderpath": "@triggerBody().folderPath" }
至
"parameters": { "folderpath": "@substring(triggerBody().folderPath,add(indexof(triggerBody().folderPath,'/'),1),sub(length(triggerBody().folderPath),add(indexof(triggerBody().folderPath,'/'),1)))" }
然后,您可以在参数中获取文件夹路径。
t98cgbkg2#
如果需要将@triggerBody().folderPath用于 * 源数据集 *,只需省略File path选项的File system字段:
File path
File system
如果省略File system字段,则会自动假定它是Directory字段的第一个组件,它与@triggerBody().folderPath的输出相匹配。请注意,在上面的屏幕截图中,我已将触发器配置为从触发器参数设置管道参数,然后我将从源数据集引用管道参数。我仍然不明白如何为sink数据集设置正确的路径,因为我想复制到一个不同的blob存储文件系统。我想我仍然需要使用other answer中的hack。
Directory
编辑:
我发现了一个更直接的方法来剥离路径中的前n个目录:
@join(skip(split(@triggerBody().folderPath, '/'), 1), '/')
说明:首先,我们在/分隔符处拆分路径,然后跳过第一项,最后,用/作为连接字符将所有项连接起来。
/
2条答案
按热度按时间ilmyapht1#
2.更改参数代码
至
然后,您可以在参数中获取文件夹路径。
t98cgbkg2#
如果需要将
@triggerBody().folderPath
用于 * 源数据集 *,只需省略File path
选项的File system
字段:如果省略
File system
字段,则会自动假定它是Directory
字段的第一个组件,它与@triggerBody().folderPath
的输出相匹配。请注意,在上面的屏幕截图中,我已将触发器配置为从触发器参数设置管道参数,然后我将从源数据集引用管道参数。我仍然不明白如何为sink数据集设置正确的路径,因为我想复制到一个不同的blob存储文件系统。我想我仍然需要使用other answer中的hack。
编辑:
我发现了一个更直接的方法来剥离路径中的前n个目录:
说明:
首先,我们在
/
分隔符处拆分路径,然后跳过第一项,最后,用/
作为连接字符将所有项连接起来。