Azure ADLS Gen2 API删除文件

时间:2020-05-28 06:18:48

标签: azure curl azure-storage azure-storage-blobs talend

我正在尝试通过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无效。.

任何人都可以提供帮助。

谢谢 萨提亚

1 个答案:

答案 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"

测试结果:

enter image description here


正如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"