Backup Personal Files
Create a compressed archive for each personal files for all users.
This flow can be useful for automatic backups, by pointing the final archive generation to e.g. an external S3 encrypted datasource.
How It Works
- Combine various criteria to list all "internal" users logins
- Compute their personal folder
Pass this location as input to the "Compress" action.
Last action is parametrized to select the archive format, and its target location.
Parameters
Name | Type | Default | Mandatory | Description |
---|---|---|---|---|
ArchivePrefix | text | daily- | false | Used to build archive name. |
ArchivePath | text | /pydiods1/backups | true | Path where to store all archives. |
Format | select, possible values: Zip (zip), Tar.gz (tar.gz) | zip | true | Archive format |
Trigger Type
Scheduled
JSON Representation
{
"Label": "Backup Personal Files",
"Owner": "pydio.system.user",
"Metadata": {
"Description": "Create a compressed archive for each personal files for all users",
"Icon": "mdi mdi-archive",
"TplCategory": "maintenance",
"Usage": "This flow can be useful for automatic backups, by pointing the final archive generation to e.g. an external S3 encrypted datasource.\n\n### How It Works\n\n * Combine various criteria to list all \"internal\" users logins\n * Compute their personal folder\n * Pass this location as input to the \"Compress\" action. \n \n Last action is parametrized to select the archive format, and its target location. "
},
"Schedule": {
"Iso8601Schedule": "R/2012-01-01T00:00:00.828696-09:00/PT24H"
},
"Actions": [
{
"ID": "actions.scheduler.log-input",
"Label": "User Personal",
"IdmSelector": {
"Query": {
"SubQueries": [
{
"type_url": "type.googleapis.com/service.Query",
"value": "Ci0KJ3R5cGUuZ29vZ2xlYXBpcy5jb20vaWRtLlVzZXJTaW5nbGVRdWVyeRICSAEQAQ=="
},
{
"type_url": "type.googleapis.com/service.Query",
"value": "CkYKJ3R5cGUuZ29vZ2xlYXBpcy5jb20vaWRtLlVzZXJTaW5nbGVRdWVyeRIbCg9weWRpby5hbm9uLnVzZXJQAWoGc2hhcmVkEAE="
}
],
"Operation": 1
},
"Label": "List all internal users"
},
"Parameters": {
"internalLogger": "false",
"message": "User {{.User.Login}}",
"taskLogger": "true"
},
"ChainedActions": [
{
"ID": "actions.archive.compress",
"Label": "Zip user data",
"Description": "Create an archive for user data",
"NodesSelector": {
"Query": {
"SubQueries": [
{
"type_url": "type.googleapis.com/tree.Query",
"value": "ahhwZXJzb25hbC97ey5Vc2VyLkxvZ2lufX0="
}
],
"Operation": 1
},
"Collect": true,
"Label": "Find personal folder"
},
"Parameters": {
"format": "{{.JobParameters.Format}}",
"target": "{{.JobParameters.ArchivePath}}/{{.JobParameters.ArchivePrefix}}{{.User.Login}}-{{now | date \"2006-01-02\"}}.{{.JobParameters.Format}}"
}
}
]
}
],
"MaxConcurrency": 10,
"Parameters": [
{
"Name": "ArchivePrefix",
"Description": "Used to build archive name.",
"Value": "daily-",
"Type": "text"
},
{
"Name": "ArchivePath",
"Description": "Path where to store all archives.",
"Value": "/pydiods1/backups",
"Mandatory": true,
"Type": "text"
},
{
"Name": "Format",
"Description": "Archive format",
"Value": "zip",
"Mandatory": true,
"Type": "select",
"JsonChoices": "{\"zip\":\"Zip\",\"tar.gz\":\"Tar.gz\"}"
}
]
}
Back to top