我正在使用 AJAX 更新文件的名称以及应该保存在哪个文件夹中,名称已更新但要保存的位置(文件夹)不起作用。
我做错了什么?
url: "https://www.googleapis.com/drive/v3/files/D5Rs1c...",
data: JSON.stringify({
name: "name the drive",
parents: [{
kind: "drive#parentReference",
id: "1isO7RhgpuvNo-dkC0UJLrziGC..."
}]
}),
contentType: "application/json",
type: "PATCH"
从
url: "https://www.googleapis.com/drive/v3/files/D5Rs1c...",
的端点来看,您似乎正在使用Drive API v3。在这种情况下,元数据的文件名和文件夹分别是name: "samplename"
和parents: ["folderId"]
。
但是,为了使用 Drive API 移动文件,目标文件夹 ID 被设置为查询参数而不是请求正文。因此,在您的请求正文中,它变成了
JSON.stringify({name: "name the drive"})
。并且,端点需要更改为"https://www.googleapis.com/drive/v3/files/" + fileId + "?addParents=" + dstFolderId
。我认为这就是您当前问题的原因。所以,请按如下方式修改您的请求正文。
从
I am updating with AJAX
,我用ajax准备了一个示例脚本如下。
const fileId = "###"; // Please set your file ID of the file you want to update.
const dstFolderId = "###"; // Please set the destination folder ID of the folder you want to put.
const accessToken = "###"; // Please set your access token.
$.ajax({
method: "PATCH",
url: "https://www.googleapis.com/drive/v3/files/" + fileId + "?addParents=" + dstFolderId,
data: JSON.stringify({ name: "name the drive" }),
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer " + accessToken,
}
})
.done(function (result) {
console.log(result);
})
.fail(function (result) {
console.log(result);
});
supportsAllDrives=true
的查询参数。