我的文件没有添加到文件夹 [DRIVE API]

问题描述 投票:0回答:1

我正在使用 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"

javascript ajax google-drive-api
1个回答
1
投票

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);
  });

注:

  • 如果你的文件夹ID的文件夹在共享Drive中,请在端点添加
    supportsAllDrives=true
    的查询参数。

参考:

© www.soinside.com 2019 - 2024. All rights reserved.