Azure 逻辑应用 SFTP 复制文件操作会中断某些 SAS URL



>我在逻辑应用时遇到问题

  1. 使用按路径创建 SAS URI 获取存储帐户中 Blob 的已启用 SAS 的 URL 的操作

  2. 已使用 SFTP 副本 文件操作,用于将文件复制到 SFTP 连接器

尝试从存储中提取 Blob 时,该过程大约 50% 的时间会失败并出现授权错误。

"actions": {
"Create_SAS_URI_by_path": {
"inputs": {
"body": {
"Permissions": "Read"
},
"host": {
"connection": {
"name": "@parameters('$connections')['azureblob']['connectionId']"
}
},
"method": "post",
"path": "/datasets/default/CreateSharedLinkByPath",
"queries": {
"path": "/container-name/SomeSourceFile.csv"
}
},
"runAfter": {},
"type": "ApiConnection"
},    
"Copy_file": {
"inputs": {
"host": {
"connection": {
"name": "@parameters('$connections')['sftp']['connectionId']"
}
},
"method": "post",
"path": "/datasets/default/copyFile",
"queries": {
"destination": "testing-if-works.csv",
"overwrite": true,
"source": "@{body('Create_SAS_URI_by_path')?['WebUrl']}"
}
},
"runAfter": {
"Create_SAS_URI_by_path": [
"Succeeded"
]
},
"type": "ApiConnection"
}
}

此错误已在 SFTP 连接器中修复。若要使其正常工作,请使用适当的操作创建新的逻辑应用。

SFTP 连接器有一个 bug,如果 SAS URL 在签名中具有加号 (%2B),则会导致它失败,这可能是由于连接器代码在尝试通过 URL 获取 blob 时如何处理 URL。解决方法是对加号进行双重编码:

"source": "@{replace(body('Create_SAS_URI_by_path')?['WebUrl'], '%2B', '%252B')}"

我会向Microsoft报告此问题,但找不到连接器的 Github 存储库。希望这将在未来对其他人有所帮助。

相关内容

  • 没有找到相关文章

最新更新