我正在使用Logic App如下上传1 Gb文件- 触发器-添加或修改文件时(仅属性) 动作1-获取文件内容 行动2-创建文件(Azure文件共享) 直到35 MB,所有触发器和动作都可以正常工作。在SFTP中上传的文件超过40 MB后,SFTP-SSH触发和操作都可以正常工作。但是,当工作流移至第二个动作-“创建文件”时,它失败并显示以下错误:SMB客户端可能正在使用指定的资源”。当我看到Azure文件共享存储帐户时,我看到正在创建filename.partial.lock。我也修改了访问策略,但问题仍然存在。
答案 0 :(得分:1)
Logic应用程序并非旨在从源/目标上传或下载大量数据,而是一种工作流解决方案,您可以将其设计为提供业务所需的解决方案,但是您仍然可以在Logic-App中使用块上传功能来进行上传或通过逻辑应用下载大文件。 请参考 https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-handle-large-messages#set-up-chunking
答案 1 :(得分:1)
要上传大文件,请确保启用Allow chunking
。
根据您的描述,假设它应该为SharingViolation
,则可以检查error codes here。
在官方文档中,有两种情况会出现“共享冲突”错误:
由于文件访问而导致违反共享行为
由于共享模式而违反共享行为
客户端A使用FileAccess.Write和FileShare.Write打开文件 (拒绝随后在打开时读取/删除)。
客户端B然后使用FileAccess打开文件。 FileShare.Read(打开时拒绝随后的写入/删除)。
结果:由于客户端B指定了a,因此遇到共享冲突 共享模式拒绝对仍然打开的文件进行写访问 写入权限。
这些是您需要考虑的场景,您可以尝试使用REST API上载文件的另一种选择,并在HTTP操作中设置Allow chunking
。
答案 2 :(得分:0)
我认为解决该问题的另一种方法是重新设计,这可能是更可扩展的解决方案:
这样,您可以读取或写入超过30 GB的文件。 该解决方案将具有更强的可缩放性,因为它具有天蓝色功能和按需自动缩放功能。
答案 3 :(得分:0)
谢谢大家。错误消息“ SMB客户端可能正在使用指定的资源”的原因是由于在两个Linux虚拟机上装入了文件共享。我们卸载了Linux VM,并进行了全新的单次安装。错误已解决。
答案 4 :(得分:0)
MSFT在我们的讨论中确认“创建文件共享”的限制为100或300 MB。当数据分块到达时,它只能与SFTP一起使用。当文件大小超过100或300 MB时,MSFT会进一步努力给出正确的错误声明。以下引自MSFT电子邮件- “感谢您提供详细信息,实际上产品团队向我确认您的流程很幸运,它不应使用这种大小,因为他们正在努力正确实施限制以防止文件大于最大大小(可能是300或100) “我不确定” 而且,仅当我们从被SFTP读取的内容中读取内容时,这种奇怪的行为才会发生。 “