метод delete_batch в API Dropbox с использованием AppsScript - PullRequest
0 голосов
/ 07 февраля 2020

Я использую AppsScript для манипулирования файлами между GDrive и Dropbox, и моя текущая задача - удалить группу файлов из указанной папки в Dropbox.

Созданное мной приложение имеет тип разрешения только для папки приложения.

Изначально мне удалось удалить один файл, используя этот метод https://www.dropbox.com/developers/documentation/http/documentation#files -delete с помощью следующего кода

    function deleteFiles() {
      var dropBoxAccessToken = "token"

      var dropBoxDeleteRes = (deleteDropBoxFiles(dropBoxAccessToken).getContentText())
      Logger.log(dropBoxDeleteRes)  
    }

    function deleteDropBoxFiles(apiKey) {
      return UrlFetchApp.fetch(
      "https://api.dropboxapi.com/2/files/delete_v2",
        {
          "method" : "post",
          "contentType" : "application/json",
          "payload" : JSON.stringify({"path": "/20200110-dsc06071.jpg"}), 
          "headers" : {"Authorization" : "Bearer " + apiKey},
          "muteHttpExceptions" : true     
          }
      );
    } 

Однако у меня возникают трудности с достижением то же самое для нескольких файлов. Эти файлы находятся в папке root папки App, и я заметил из документации API, что этот метод не поддерживает операции с папками root (ошибка: Error in call to API function "files/delete_batch": request body: entries.path: The root folder is unsupported.). Ссылаясь на этот метод https://www.dropbox.com/developers/documentation/http/documentation#files - delete_batch Я попытался изменить строку path на что-то вроде {"path":"/\"\""}, {"path":"/."} или {"path":"/"}, чтобы указать «все файлы». Тестирование через API Explorer дает мне async_job_ID, но файлы остаются не удаленными в папке. Тем не менее, выполнение этого изнутри AppsScript возвращает следующую ошибку:

{"error_summary": "path_lookup/not_found/..", "error": {".tag": "path_lookup", "path_lookup": {".tag": "not_found"}}}, что, очевидно, является ошибкой пути.

Кажется, что этот метод не может быть удален из папки App root.

Буду признателен за небольшую помощь в этом. Спасибо.

1 Ответ

1 голос
/ 07 февраля 2020

Приложение Dropbox API с «папкой приложения» не может выполнить удаление для всего своего root, как это, но я передам это как запрос функции. Я не могу обещать, если или когда это могло бы быть осуществлено все же.

Вместо этого, если вы хотите удалить все содержимое папки root, вам нужно будет перечислить каждый элемент и выполнить удаление для каждого отдельно, либо вызвав / 2 / files / delete_v2 один раз для каждого элемента или / 2 / files / delete_batch с пакетами, в которых перечислены все элементы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...