首页 > 解决方案 > Azure kudu vfs API 不支持包含“#”的文件名

问题描述

我正在使用 kudu vfs API 在两个 azure 网站之间同步两个文件夹。为此,我正在从第一个网站下载不在第二个网站中的文件并将它们上传到第二个网站。

下载文件:

 Invoke-RestMethod -Uri $kuduApiUrl `
                    -Headers @{"Authorization"=$kuduApiAuthorisationToken;"If-Match"="*"} `
                    -Method GET `
                    -OutFile $localPath `
                    -ContentType "multipart/form-data"

上传文件:

 $result = Invoke-RestMethod -Uri $kuduApiUrl `
                    -Headers @{"Authorization"=$kuduApiAuthorisationToken;"If-Match"="*"} `
                    -Method PUT `
                    -InFile $localPath `
                    -ContentType "multipart/form-data"

如果文件名不包含#在其中,则一切正常。失败案例: $kuduApiUrl = "https://targetWebAppName.scm.azurewebsites.net/api/vfs/site/wwwroot/Content/Uploads/09.01#Import Listabc.txt"

$kuduApiUrl = "https://targetWebAppName.scm.azurewebsites.net/api/vfs/site/wwwroot/Content/Uploads/#09.01Import Listabc.txt"

标签: azurepowershellvfskudu

解决方案


因为#是 URI 中的转义字符,只需将 替换为#%23就可以正常工作。

在此处输入图像描述

在此处输入图像描述


推荐阅读