2017-09-03 157 views
-1

我在我的Google驅動器中共享文件夾/文件到'A'。應用腳本谷歌驅動器自動刪除編輯器

但現在我試圖停止共享'A'。

我試圖停止使用應用程序腳本共享所有文件夾/文件,但應用程序腳本無法執行超過5分鐘。

應用程序腳本有沒有更好的解決方案?

+1

通過DriveApp.searchFiles(searchParams)獲取文件的FileIterator之後,您可以使用我在此處描述的解決方案擊敗5分鐘的執行配額https://stackoverflow.com/questions/45985025/optimizing-google-sheets -appendrow/45987178#45987178 –

回答

0

你是否超過了5分鐘,因爲你正在迭代很多文件?順便說一句,可能最好是使用高級API來更快地執行此操作(這是來自我的個人經驗,它可能不是真實的,但避免FileIterators往往會加快速度)。另外,如果您正在使用DriveApp.getFiles()而不是通過直接搜索正確的代碼進行迭代,那麼您正在遍歷驅動器中的所有文件,並且需要很多。

使用高級API,您只能遍歷用戶A可以修改/讀取的文件(即使達到5分鐘,如果再次運行該功能,您已經修改的文件/文件夾將會是沒有考慮到查詢)。

文件列表可以通過獲得(假設:用戶A具有郵件地址[email protected]):

var files = Drive.Files.list({ 
    q: '"[email protected]" in readers or "[email protected]" in writers' 
}); 


files.items.forEach(file => { 
    var file_app = DriveApp.getFileById(file.id); 
    // Do here what you need to stop sharing. 
}); 

上市獲取文件和文件夾。您可以使用屬性file.mimeType(文件夾爲application/vnd.google-apps.folder,文件的實際MIME類型,如PDF文件的application/pdf)來檢查此問題。

免責聲明:你必須使兩個AppScript和谷歌控制檯的高級API。這很容易,只需仔細閱讀the instructions

測試:我測試了這個解決方案與我的一位同事共享的文件。我們在擁有超過10000個文件的共享文件夾中,並且我成功地遍歷所有文件而沒有達到極限。 DriveApp回調達到極限。但是,再次,這是個人測試,謹慎對待。

+0

真的非常感謝您的回答。我還有1個問題。執行時間僅爲5分鐘「應用程序腳本」執行時間嗎? 還是「連接到谷歌服務的時間」? – Nocome

+0

我認爲兩者的總和... –