Azure ADLS Gen2 API 删除文件

Azure ADLS Gen2 API to delete file

我正在尝试通过 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 文件夹中的文件。

当 运行ning 时,出现以下错误。

{"error":{"code":"InvalidUri","message":"请求 URI 无效..

任何人都可以帮忙吗。

谢谢 沙迪亚

更新:删除非空目录的示例命令(注意:在本示例中,将?替换为& 就在 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.If你想删除一个非空文件夹,你应该在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.If你想删除一个文件,使用如下命令:

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"