javascript - 尝试将文件上传到 Google Drive api 时收到 404,怀疑存在数据格式问题

标签 javascript post request google-drive-api

我尝试使用 JS 将一些动态生成的数据 (json) 保存到我的 Google 驱动器上的(新)文件,但我在 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 示例,但使用动态创建的数据而不是上传的文件,并使用目标目录而不是根目录。

谢谢

最佳答案

明白了!

事实证明,我为父文件夹提供了错误的 ID,这就是我得到 404 的原因,但由于它没有作为正确的错误对象返回,我认为 404 是因为/upload/v2/drive/文件未找到。

也许谷歌可以让像我这样的白痴更清楚;)

关于javascript - 尝试将文件上传到 Google Drive api 时收到 404,怀疑存在数据格式问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17084643/

相关文章:

javascript - 三款js黑色 Material 转透明

javascript - 循环和渲染元素在 React-native 中不起作用

javascript - 使用 bluebird Promise 时,then() 没有被调用

json - 如何使用不同的对象发出此 POST 请求?

javascript - 如何在 SvelteKit 中设置 SCSS 导入的基本路径?

javascript - Firefox 和 Chrome 在 POST 期间用 CR+LF 替换 LF

django - 通过 Postman 发送 CSRF token

java - 如何允许第一次未授权请求然后再请求授权?

iOS :[NSURLProtocol propertyForKey:inRequest:] return nil

node.js - https GET 请求从浏览器成功但从 Node js 服务器失败