Purge Files Older...

Definitely remove files that were not modified since a given period.

This flow automates task of purging old files to maintain storage size under control. It can either "Delete" old files directly, or for more security it can simply put a tag on them so that user is informed that they are to be removed soon, and another job can crawl tagged files for actual deletion.

Parameters

Name Type Default Mandatory Description
RootFolder text pydiods1 false Root path where to look for files to purge.
FilesOlderThan integer 30 false (days) Look for files older than XX days
Action select, possible values: Delete (delete), Mark for deletion (tag) tag false Either mark for deletion with a tag, or permanently delete file.
MarkTagValue text to-be-deleted false If Action is "Mark for deletion", value of the tag to set.

Trigger Type

Scheduled

JSON Representation

{
  "Label": "Purge Files Older...||Definitely remove files that were not modified since a given period||mdi mdi-delete-forever",
  "Owner": "pydio.system.user",
  "Custom": true,
  "Schedule": {
    "Iso8601Schedule": "R/2020-03-03T20:00:00.471Z/PT24H"
  },
  "Actions": [
    {
      "ID": "actions.scheduler.log-input",
      "Label": "Collect Files",
      "NodesSelector": {
        "Query": {
          "SubQueries": [
            {
              "type_url": "type.googleapis.com/tree.Query",
              "value": "Ch17ey5Kb2JQYXJhbWV0ZXJzLlJvb3RGb2xkZXJ9fTABggEjPnt7LkpvYlBhcmFtZXRlcnMuRmlsZXNPbGRlclRoYW59fWQ="
            }
          ],
          "Operation": 1
        },
        "Label": "List Root Folder"
      },
      "Parameters": {
        "internalLogger": "false",
        "message": "{{.Node.Path}}",
        "taskLogger": "false"
      },
      "ChainedActions": [
        {
          "ID": "actions.scheduler.log-input",
          "Label": "Additional Filtering",
          "NodesFilter": {
            "Query": {
              "SubQueries": [
                {
                  "type_url": "type.googleapis.com/tree.Query",
                  "value": "OgYucHlkaW9wAQ=="
                }
              ]
            },
            "Label": "Exclude .pydio",
            "Description": "Filter out .pydio hidden files from selection."
          },
          "Parameters": {
            "fieldname": "{\"@value\":\"DurationDate\"}",
            "message": "",
            "taskLogger": "false"
          },
          "ChainedActions": [
            {
              "ID": "actions.tree.delete",
              "ActionOutputFilter": {
                "Query": {
                  "SubQueries": [
                    {
                      "type_url": "type.googleapis.com/jobs.ActionOutputSingleQuery",
                      "value": "akB7e2lmIGVxIC5Kb2JQYXJhbWV0ZXJzLkFjdGlvbiAiZGVsZXRlIn19dHJ1ZXt7ZWxzZX19ZmFsc2V7e2VuZH19"
                    }
                  ]
                },
                "Label": "Delete or Tag?"
              },
              "Parameters": {
                "fieldname": "{\"@value\":\"FreeCondition\"}",
                "ignoreNonExisting": "true"
              },
              "FailedFilterActions": [
                {
                  "ID": "actions.put-meta",
                  "Parameters": {
                    "json": "{\"usermeta-tags\":\"{{.JobParameters.MarkTagValue}}\"}"
                  }
                }
              ]
            }
          ]
        }
      ]
    }
  ],
  "MaxConcurrency": 10,
  "Parameters": [
    {
      "Name": "RootFolder",
      "Description": "Root path where to look for files to purge.",
      "Value": "pydiods1",
      "Type": "text"
    },
    {
      "Name": "FilesOlderThan",
      "Description": "(days) Look for files older than XX days",
      "Value": "30",
      "Type": "integer"
    },
    {
      "Name": "Action",
      "Description": "Either mark for deletion with a tag, or permanently delete file.",
      "Value": "tag",
      "Type": "select",
      "JsonChoices": "{\"tag\":\"Mark for deletion\",\"delete\":\"Delete\"}"
    },
    {
      "Name": "MarkTagValue",
      "Description": "If Action is \"Mark for deletion\", value of the tag to set. ",
      "Value": "to-be-deleted",
      "Type": "text"
    }
  ]
}
Back to top