我试图使用 JS 将一些动态生成的数据(json)保存到我的谷歌驱动器上的(新)文件中,但我在我的 POST 中不断收到这些无用的错误。
起初我以为我发错了地址,但在更改数据内容后,错误从 404 变为 400,所以现在我怀疑错误与格式相关(因为我不太了解这个多部分的东西)。
代码就像:
function gDriveSaveProject(data, gDriveFolderID, currentProj, callback )
{
const boundary = '-------314159265358979323846';
const delimiter = "\r\n--" + boundary + "\r\n";
const close_delim = "\r\n--" + boundary + "--";
var metadata = {
'title': currentProj + ".lo",
'mimeType': 'application/json',
'parents' : [{'id' : gDriveFolderID}]
};
var multipartRequestBody =
delimiter +
'Content-Type: application/json\r\n\r\n' +
JSON.stringify(metadata) +
delimiter +
'Content-Type: application/json\r\n' +
'Content-Transfer-Encoding: base64\r\n' +
'\r\n' +
btoa(JSON.stringify(data)) +
close_delim;
var request = gapi.client.request({
'path': '/upload/drive/v2/files',
'method': 'POST',
'params': {'uploadType': 'multipart'},
'headers': {
'Content-Type': 'multipart/mixed; boundary="' + boundary + '"'
},
//'body': "" // using this gives me 400 instead of 404
'body': multipartRequestBody
});
request.execute(callback);
}
该代码基于 google drive sdk 示例,但使用动态创建的数据而不是上传的文件和目标目录而不是根目录。
谢谢