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