我有一个脚本,可以将 csv 文件上传到共享驱动器,它工作正常,但当我尝试创建文件夹时,它不起作用。不知道我哪里出错了 我用来创建文件夹的代码
function createFolder() {
var parents = '1XNBrOtnXJU1MhYv0nrAwTDXRZ'
var fileMetadata = {
'name': 'sample_folder',
'mimeType': 'application/vnd.google-apps.folder',
'parents' : [parents]
};
drive.files.create({
resource: fileMetadata,
fields: 'id'
}, function (err, file) {
if (err) {
// Handle error
console.error(err);
} else {
console.log('Folder Id: ', file.id);
}
});
}`
最佳答案
您仍然可以在 JavaScript 中使用 fetch API。只需更改网址即可
来自:
https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart&supportsAllDrives=true
致:
https://www.googleapis.com/drive/v3/files?supportsAllDrives=true
更改元数据中的 mimeType
来自:
"mimeType": "text/csv",
致:
"mimeType": "application/vnd.google-apps.folder",
删除这行代码:
var form = new FormData();
form.append('metadata', new Blob([JSON.stringify(metadata)], { type: 'application/json' }));
form.append('file', file);
并直接使用元数据作为您的请求正文。
您的代码应如下所示:
var parents = "18-7shshazxhkashjfk-xO";
var metadata = {
"name": filename,
"mimeType": "application/vnd.google-apps.folder",
"parents": [parents], // Google Drive folder id
};
var accessToken = gapi.auth.getToken().access_token;
fetch("https://www.googleapis.com/drive/v3/files?supportsAllDrives=true", {
method: 'POST',
headers: new Headers({
'Authorization': 'Bearer ' + accessToken,
'Accept': 'application/json',
'Content-Type': 'application/json'
}),
body: JSON.stringify(metadata),
}).then((res) => {
return res.json();
}).then(function(val) {
console.log(val);
});
引用:
关于javascript - 使用 Javascript 在共享云端硬盘 ( Google Drive API) 中创建文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68655145/