Azure ADLS Gen2 API删除文件

问题描述 投票:0回答:1

我正在尝试通过Talend从Azure ADLS存储中删除文件。经过检查,我找不到从Talend连接到ADLS并删除文件或文件夹的任何选项。作为另一种选择,我试图从Talend shell运行cURL命令以使用ADLS API删除。

**

  • ADLS Gen2 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无效。。

任何人都可以提供帮助。

谢谢Sathya

azure curl azure-storage azure-storage-blobs talend
1个回答
0
投票

更新:删除非空目录的示例命令:

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。如果要删除非空文件夹,则应在URL中添加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"
© www.soinside.com 2019 - 2024. All rights reserved.