我在我的Google驅動器中共享文件夾/文件到'A'。應用腳本谷歌驅動器自動刪除編輯器
但現在我試圖停止共享'A'。
我試圖停止使用應用程序腳本共享所有文件夾/文件,但應用程序腳本無法執行超過5分鐘。
應用程序腳本有沒有更好的解決方案?
我在我的Google驅動器中共享文件夾/文件到'A'。應用腳本谷歌驅動器自動刪除編輯器
但現在我試圖停止共享'A'。
我試圖停止使用應用程序腳本共享所有文件夾/文件,但應用程序腳本無法執行超過5分鐘。
應用程序腳本有沒有更好的解決方案?
你是否超過了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
回調達到極限。但是,再次,這是個人測試,謹慎對待。
真的非常感謝您的回答。我還有1個問題。執行時間僅爲5分鐘「應用程序腳本」執行時間嗎? 還是「連接到谷歌服務的時間」? – Nocome
我認爲兩者的總和... –
通過DriveApp.searchFiles(searchParams)獲取文件的FileIterator之後,您可以使用我在此處描述的解決方案擊敗5分鐘的執行配額https://stackoverflow.com/questions/45985025/optimizing-google-sheets -appendrow/45987178#45987178 –