google apps script - Advanced Drive Service returning Empty Response Error when inserting file -


this continuation how use advanced drive service upload files.

my webapp consists of upload form data files, stored on google drive. (full code in snippet below.) i'm having problem following line of code:

    var file = drive.files.insert(resource, mediadata); // create file using drive api 

    try {                    //get root folder , pull existing folders, plus setup variables pulled form             var dropbox = form.country;          var timestamp = new date();                          //set file name differently weekly member report (do not want overright based on name keep each extract add timestamp name)          if (form.reporttype == "member weekly"){            var filename = form.reporttype + timestamp + ".xls";          }          else           {          var filename = form.reporttype+".xls";          }                  var rootfolder = driveapp.getfolderbyid("0byvtwn42hsoxfnvosjb2nwprynriq2vwudzeendnowwwm1fozk1evnjou3bxqxhwu0pdse0");          //note root folder live uploads folder in flatworld app folder structure          var folder, folders = rootfolder.getfoldersbyname(dropbox);                    //check if folder exists , if not create              if (folders.hasnext()) {            folder = folders.next();          } else {            folder = rootfolder.createfolder(dropbox);          }                  var folderurl = folder.geturl(); // retain url of folder final end message user                  //check if file exists , delete if          var file, files = folder.getfilesbyname(filename);          while( files.hasnext()){            file = files.next();            file.settrashed(true);          }                  //new code stackover flow:                //upload file , set various properties        var mediadata = form.myfile;            var resource = {          title: filename,          mimetype: 'application/vnd.ms-excel',          description: "uploaded via bni upload form " + form.myname + " on: " + timestamp        };        var file = drive.files.insert(resource, mediadata); // create file using drive api        var fileid = file.id;        var driveappfile = driveapp.getfilebyid(fileid); // retrieve file in driveapp scope.        var fileurl = driveappfile.geturl(); //retain url of file final end message user                driveapp.removefile(driveappfile); // remove new file users root drive        folder.addfile(driveappfile); // puts file in selected folder                        //end of new code stackover flow                   //success message displayed user            return "thanks! file uploaded to: <br><br><b>folder location:</b> " + folderurl + "<br>" + "<b>file:</b> " + fileurl + ". <br><br>for queries please email user@example.com copying urls displayed here in email. can close browser window or use link below upload file.<br><br>";                  } catch (error) {                    //catch error return user , email error details

its throwing error message "empty response" on line of code above when try , upload large file (15mb) have suggestions. inside files insert limit of 5120gb , code works fine on smaller files.

i've tried add in loop in function try upload couple of times, still throwing same error sadly:

  //setup function return null if file not uploaded correctly    function createdrivefile(resource_f, mediadata_f){      try{         var file = drive.files.insert(resource_f, mediadata_f); // create file using drive api        return file;      } catch (e) {return null;}    }            //try upload , loop if null    var maxtries = 3;    var tries = 0;    {      tries = tries + 1;      if (tries > 0) {       var file = createdrivefile(resource, mediadata);       logger.log("i'm trying upload, try number: " + tries);      }    } while ((file == null) && (tries < maxtries));    if (file == null) {    var file = drive.files.insert(resource, mediadata); // try 1 laste time create file using drive api - outside loop function if error thrown script stops    }

the error seems occur on larger file, if reduce size of same file solves error need adjust upload process account larger file. there google apps script equivalent of making api upload request resumable?

your file size determinant factor here. referencing documentation suggests simple upload method used here 5mb only.

https://developers.google.com/drive/web/manage-uploads

your comments seem confirm happening you.

as hinted, use resumable upload method. use uploadtype: resumable parameter flag – api docs on insert method describes how.


Comments