2016-04-15 100 views
0

我剛剛從Google Script中獲得更新,並嘗試建立一個支持匿名上傳到雲端硬盤的腳本(https://ctrlq.org/code/19747-google-forms-upload-files)。Google雲端硬盤高級API - 插入文件導致例外:空回覆

到目前爲止我所做的是能夠運行腳本,發現folder.createFile(blob)功能無法上傳超過10Mb的文件大小。然後我發現使用高級驅動器服務(Drive API)可能會提供修復程序,因此我使用高級服務(Drive而不是DriveApp)(https://developers.google.com/drive/v2/reference/files/insert#http-request)更改。但是,它然後迴應錯誤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

備註:我注意到有類似我遇到(Advanced Drive Service returning Empty Response Error when inserting file)問題上的問題,但似乎沒有在這一點上沒有定論,所以我希望有人能幫助解決這個問題

回答

0

由於在包含的類似帖子的答案中指出,由於上傳的文件大小很高,因此建議使用uploadType=resumable。它幾乎是解決您的問題。由於每Upload Files document

簡單的上傳

爲了快速傳輸較小的文件,例如5 MB或更少

可恢復上傳

對於可靠傳輸,與較大的文件尤爲重要。

希望這有助於(至少給你一個想法)莫名其妙。祝你好運。

+0

我嘗試過使用'uploadType = resumable'。但是,日誌報告這個錯誤 '例外:不支持的內容與類型:多部分/相關' 我試過不設置mimeType參數,但仍然有這個錯誤 – noisyBlue

+0

我認爲這是從您原來的職位不同的關注。我建議發佈一個新的,包括細節,所做的事情,檢查的資源以及您認爲可能對社區有用的代碼片段,以便能夠爲您提供幫助。 :) –

相關問題