1 var myData = {}; 2 myData.removed = []; 3 4 /** 5 * Removes files > 24 hours old in theParentFolder and deletes theParentFolder if it is empty 6 * 7 * @param theParent Managed Folder 8 */ 9 function removeFiles(theParent, theRemoveAll) { 10 logger.info( 11 "Removing " + 12 (theRemoveAll ? "all " : "") + 13 "temporary assets from " + 14 theParent.path 15 ); 16 var anIterator = theParent.getContents(1); 17 if (!anIterator.hasNext()) { 18 fileManager.folderDelete(theParent); 19 } 20 while (anIterator.hasNext()) { 21 var aFileOrFolder = anIterator.next(); 22 if (fileManager.isFolder(aFileOrFolder.path)) { 23 removeOldFiles(aFileOrFolder); 24 } else { 25 var aToday = new Date(); 26 if (aFileOrFolder.lastModified == -1) { 27 return; 28 } 29 if ( 30 theRemoveAll || 31 aToday.getTime() - aFileOrFolder.lastModified >= 24 * 60 * 60 * 1000 32 ) { 33 // 24 hours 34 fileManager.fileDelete(aFileOrFolder); 35 myData.removed[myData.removed.length] = aFileOrFolder.path; 36 } 37 } 38 } 39 } 40 /** 41 * Removes old files in the restapi temp folder. Renditions/Workflows/_internal/restapi/tmp/ 42 * Called every 24 hours on a schedule 43 * Clears all tmp files if triggered manually or by REST request 44 * @returns {string} 45 */ 46 function main() { 47 var aFolderToClean = fileManager.folderNewByPath( 48 "Renditions/Workflows/_internal/restapi/tmp/" 49 ); 50 removeFiles(aFolderToClean, context.getType() != eventType.SCHEDULED); 51 return JSON.stringify(myData, null, 2); 52 } 53 main(); 54