如何使用谷歌应用程序脚本在谷歌驱动器中创建一个大文件?

时间:2013-09-12 13:19:09

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

我尝试使用谷歌应用脚​​本在谷歌驱动器中创建一个大文件。此文件合并了三个文件。我的代码是:

    function unirFicheros(idDirectorio,nombreFichero, numeroFicheros){
      var nombreTotal=nombreFichero;
      var strTotal="";
      var docTotal = DocsList.createFile(nombreTotal, strTotal);
      Utilities.sleep(5000);
      Logger.log("SE CREA TOTAL: " + numeroFicheros);
      for(var i=1;i<=numeroFicheros;i++){
           Logger.log("ENTRO EN EL FOR");
           var nombrePartes=nombreFichero+i+".csv";
           Logger.log("NOMBREPARTES: " + nombrePartes);
           var id=listFilesInFolder(idDirectorio,nombrePartes);
           var docPartes = DocsList.getFileById(id);
           Utilities.sleep(5000);
           Logger.log("Existe el fichero");
           var str = docPartes.getContentAsString();
           Logger.log("UNE LA CADENA");
           strTotal = strTotal+str;
           Utilities.sleep(5000);
           docTotal.replace(strTotal);
           Utilities.sleep(30000);
        }
        return docTotal;
    }

发生错误是:

  

Ejecuciónfallida:El archivo backup_actuaciones_PROD superaeltamañodearchivoamáximoallowido。   (执行失败:文件backup_actuaciones_PROD文件大小超过允许的最大值。)

我试图生成没有格式的文件,因为互联网说这些文件更大。实际上,我的文件有44 MB,但我需要427 MB。

问候。

1 个答案:

答案 0 :(得分:0)

DriveApp.createFile()包含一条说明...... Throws an exception if content is larger than 10MB。我希望此限制也会影响DocsList.createFile()DocsList.replace()

通过避免处理docTotal的全部内容,您可能会获得更好的结果。使用File.append()添加每个文件的内容:

       ...
       var str = docPartes.getContentAsString();
       Logger.log("UNE LA CADENA");
       docTotal.append(str);
       ...