delete_batch Dropbox API 中的方法使用 Apps 脚本

delete_batch method in Dropbox API using AppsScript

我正在使用 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     
          }
      );
    } 

但是,我很难对多个文件实现同样的效果。 这些文件位于 App 文件夹的根文件夹中,我从 API 文档中注意到此方法不支持根文件夹操作(错误: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":"/"}之类的东西来表示"all files"。通过 API Explorer 对其进行测试会得到 async_job_ID,但文件夹中的文件仍未删除。但是,运行 同样来自 AppsScript returns 以下错误:

{"error_summary": "path_lookup/not_found/..", "error": {".tag": "path_lookup", "path_lookup": {".tag": "not_found"}}} 显然是路径错误。

感觉这个方法好像无法从App根文件夹中删除

希望对此有所帮助。 谢谢你。

具有 "app folder" 的 Dropbox API 应用无法像这样删除其整个根,但我会将其作为功能请求传递。不过,我不能保证是否或何时可以实施。

相反,如果您想删除根文件夹的所有内容,您需要列出每一项并针对每一项具体发出删除命令,方法是调用 /2/files/delete_v2 一次每个项目,或 /2/files/delete_batch 与列出所有项目的批次。