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 与列出所有项目的批次。
我正在使用 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 与列出所有项目的批次。