我正在尝试通过Talend从Azure ADLS存储中删除文件。经过检查,我找不到从Talend连接到ADLS并删除文件或文件夹的任何选项。 另一种选择是,我尝试从Talend shell运行cURL命令以使用ADLS API删除。
**
**:https://docs.microsoft.com/en-us/rest/api/storageservices/datalakestoragegen2/path/delete
我已经从存储帐户中创建了一个SAS令牌。
我的cURL命令如下所示。
curl -X DELETE -H "x-ms-date: Thu, 28 May 2020 05:51:37 GMT" https://account10.dfs.core.windows.net/testfolder/test1/test2/?<SAS Token>
我正在尝试删除test2文件夹中的文件。
运行时,出现以下错误。
{“错误”:{“代码”:“ InvalidUri”,“消息”:“请求URI无效。.
任何人都可以提供帮助。
谢谢 萨提亚
答案 0 :(得分:1)
更新:删除非空目录的示例命令(注意:在此示例中,将?替换为&)。 sasToekn):
curl -X DELETE -H "x-ms-date: Thu, 28 May 2020 05:51:37 GMT" "https://account10.dfs.core.windows.net/testfolder/test1/test2?recursive=true&sv=2019-10-10&ss=bfqt&srt=sco&sp=rwdlacupx&se=2020-05-29T08:50:28Z&st=2020-05-29T00:50:28Z&spr=https&sig=xxx"
测试结果:
正如Mantri在评论中提到的那样,URL中的test2之后有一个多余的“ /”。您应该将其删除。
除此之外,您应该注意以下两个注意事项:
1。如果要删除非空文件夹,则应在网址中添加recursive=true
。 curl命令如下:
curl -X DELETE -H "x-ms-date: Thu, 28 May 2020 05:51:37 GMT" "https://account10.dfs.core.windows.net/testfolder/test1/test2?recursive=true&sasToken"
2。如果要删除文件,请使用以下命令:
curl -X DELETE -H "x-ms-date: Thu, 28 May 2020 05:51:37 GMT" "https://account10.dfs.core.windows.net/testfolder/test1/test2/aa.txt?sasToken"