更改使用Google Drive API上传的文件的文件名-Apps脚本

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

我创建了一个脚本,可以使用服务帐户在Google云端硬盘共享驱动器上上传文件。但是,我在重命名文件时遇到麻烦。我总是得到“无标题”文件名。

这是我的代码:

function movefiletoDrive(fileId, driveID, parentDriveId){

  var body = {"title":"RJ"}

  var service = getDriveService();
    service.reset()
      if (service.hasAccess()) {
         var url = 'https://www.googleapis.com/drive/v3/files/'+fileId+'?addParents='+driveID+'&removeParents='+parentDriveId+'&supportsTeamDrives=true';
         var params = {
          headers: {
            Authorization: 'Bearer ' + service.getAccessToken()
          },
          method:'PATCH'
         };

        var response2 = UrlFetchApp.fetch(url, params);
        var response2parse = JSON.parse(response2.getContentText());
        var newFileId = response2parse.id

        //changeFileName(newFileId);
        Logger.log(response2parse);
      }
}

我尝试在URL上添加参数“ title”和“ name”来更改文件名,但是没有运气。

任何帮助将不胜感激。谢谢。

rest google-apps-script google-drive-api google-apps
1个回答
0
投票
  1. 定义contentType非常关键
  2. UL提取的正确参数是name,而不是title

工作代码可能看起来像这样:

function movefiletoDrive(fileId, driveID, parentDriveId){

  var body = {"name":"RJ"}
  var service = getDriveService();
  service.reset()
  if (service.hasAccess()) {
    var url = 'https://www.googleapis.com/drive/v3/files/'+fileId+'?addParents='+driveID+'&removeParents='+parentDriveId+'&supportsTeamDrives=true';
    var params = {
      headers: {
        Authorization: 'Bearer ' + service.getAccessToken()
      },
      method:'patch',
      contentType: 'application/json',
      payload: JSON.stringify(body)
    };    
    var response2 = UrlFetchApp.fetch(url, params);
    var response2parse = JSON.parse(response2.getContentText());
    var newFileId = response2parse.id;
    changeFileName(newFileId);
    Logger.log(response2parse);
  }
}

如果您遇到此解决方案的任何问题,或者我为其他问题提供的解决方案,请随时与我联系。

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