Google Drive高级API-插入文件原因异常:空响应



我从Google Script获得了更新,并试图建立一个支持匿名上传到Drive的脚本(https://ctrlq.org/code/19747-google-forms-upload-files)。

到目前为止,我所做的是能够运行脚本,并发现folder.createFile(blob)函数无法上传文件大小超过10Mb的文件。然后我发现使用高级驱动器服务(驱动器API)可能能够提供修复,所以我使用高级服务(Drive而不是DriveApp)进行更改(https://developers.google.com/drive/v2/reference/files/insert#http-请求)。然而,它随后响应错误Exception: Empty response

这是我的密码。

function uploadFiles(form) {  
  try {   
    var blob = form.file;
    var contentType = blob.type;    
    var folderName = "Upload Folder";
    var folder, folders = DriveApp.getFoldersByName(folderName);
    if (folders.hasNext()) {
      folder = folders.next();
    } else {
      folder = DriveApp.createFolder(folderName);
    }
    var file = {
      title: blob.name,
      mimeType: contentType,
      parents:[{id:folder.getId()}]
    };
    var options = {
        uploadType: "multipart"
    };
    file = Drive.Files.insert(file, blob, options);           
    return "File uploaded successfully " + file.fileSize;
  } catch (error) {
    return error.toString();
  }
}

它可以上传<10Mb文件(在uplaodType:mediamultipart上)。然而,>10Mb仍然失败,是否需要使用resumable

备注:我注意到有一个类似于我遇到的问题(高级驱动器服务在插入文件时返回空响应错误),但目前似乎还没有结论,所以我希望有人能帮助解决这个问题

正如你在类似帖子中的回答所述,建议使用uploadType=resumable,因为上传的文件大小很高。这几乎是你问题的解决方案。根据上传文件文件:

简单上传

对于较小文件的快速传输,例如,5 MB或更小

可恢复上传

对于可靠的传输,对于<strong]较大的文件>尤其重要。

最新更新