Azure ADLS Gen2 API для удаления файла - PullRequest
0 голосов
/ 28 мая 2020

Пытаюсь удалить файл из хранилища Azure ADLS через Таленд. После проверки я не смог найти ни одной опции для подключения к ADLS из Talend и удаления файла или папки. В качестве другого варианта я пытаюсь запустить команду cURL из оболочки Talend для удаления с помощью API ADLS.

**

  • Справочник по API ADLS Gen2

**: 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.

При запуске я получаю следующую ошибку:

{"error": {"code ":" InvalidUri "," message ":" URI запроса недействителен ..

Может ли кто-нибудь помочь в этом же.

Спасибо, Сатья

1 Ответ

1 голос
/ 28 мая 2020

Обновление: пример команды для удаления непустого каталога (Примечание: в этом примере замените ? на & непосредственно перед 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


Как Мантри упомянул в комментарии, есть лишний '/' после test2 в URL-адресе. Вы должны удалить его.

Кроме того, вы должны принять во внимание следующие 2 соображения:

1. Если вы хотите удалить непустую папку , вы должны добавить recursive=true в URL-адресе. Команда 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"
...