【问题标题】:Upload a file with google drive rest api使用 google drive rest api 上传文件
【发布时间】:2017-10-26 08:55:42
【问题描述】:

我在谷歌应用程序脚本中使用服务帐户,所以我无法使用正常的谷歌应用程序脚本 api。

所以我使用 drive rest api 来创建、移动、复制等,但我可以使用 rest api 上传文件。它上传了一个文件,但它没有内容或内容错误。

这是我的代码:

var contentType = data.substring(5, data.indexOf(';')),
            bytes = Utilities.base64Decode(data.substr(data.indexOf('base64,') + 7)),
            blob = Utilities.newBlob(bytes, contentType, file);

  var service = getService();
if (service.hasAccess()) {
    var url = 'https://www.googleapis.com/upload/drive/v3/files?uploadType=media';
    var data = {
        name: name,
        mimeType: "application/pdf",
        parents:  [parent]
    };
    var options = {
        method: 'post',
        contentType: 'application/json',
        body: blob ,
        payload: JSON.stringify(data),
        muteHttpExceptions: true,
        headers: {
            Authorization: 'Bearer ' + service.getAccessToken()
        }
    };
    var response = UrlFetchApp.fetch(url, options);
   var result = JSON.stringify(response.getContentText());
   Logger.log(JSON.stringify(result, null, 2));
    return result["id"];
} else {
    Logger.log(service.getLastError());
}

谢谢

【问题讨论】:

    标签: rest google-apps-script google-drive-api


    【解决方案1】:

    使用 Drive API 上传文件时,需要使用files.create 方法。您可以在使用它的Basic uploads 中查看 javascript 代码参考。另请注意,App Script uploading files 使用 Drive v2 版本的 files.insert 而不是 files.create。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多