This workflow corresponds to n8n.io template #7284 — we link there as the canonical source.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "oDayLpms5q2aFCKw",
"name": "Automated AWS/Azure/GCP to MinIO Backup",
"tags": [],
"nodes": [
{
"id": "ca4e9fad-468f-4141-8db1-d9ea6bc90eb8",
"name": "Sticky Note37",
"type": "n8n-nodes-base.stickyNote",
"position": [
-496,
192
],
"parameters": {
"color": 7,
"width": 176,
"height": 240,
"content": "### Configure the Schedule Trigger to follow your needs"
},
"typeVersion": 1
},
{
"id": "f7e0603c-5526-474c-92e7-1620d7081209",
"name": "Path Extraction",
"type": "n8n-nodes-base.splitOut",
"position": [
-32,
272
],
"parameters": {
"options": {},
"fieldToSplitOut": "Key"
},
"typeVersion": 1
},
{
"id": "2dd2d8f6-e3e5-41fe-bd3a-84a12eb79a0d",
"name": "Schedule Trigger",
"type": "n8n-nodes-base.scheduleTrigger",
"position": [
-464,
304
],
"parameters": {
"rule": {
"interval": [
{
"triggerAtHour": 2,
"triggerAtMinute": 15
}
]
}
},
"typeVersion": 1.2
},
{
"id": "a3fed4e9-8c60-458f-a8a4-761ead158277",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
352,
192
],
"parameters": {
"color": 7,
"width": 224,
"height": 240,
"content": "### Link your MinIO Bucket"
},
"typeVersion": 1
},
{
"id": "9f655847-2033-472a-ba6b-feb5e0d23885",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-512,
-160
],
"parameters": {
"color": 4,
"width": 1072,
"height": 304,
"content": "## Automated Cloud Storage (AWS, Azure & GCP) to Local MinIO S3 Storage Backup with Scheduling\n\n### Want to backup data from AWS S3 Buckets, Azure Blob Containers or Google Cloud Storage Spaces ?\n\nYou'll need to configure an access to the Bucket/Container you need to backup (with endpoint url, access key and secret key) as well as a MinIO service running on your network (to configure locally with a S3 Node, use the url based on your service IP (http://XXX.XXX.XXX.XXX:9000) and both access and secret keys aswell). \n\nAlso, in the credentials section of N8N, check 'Force Path Style' & 'Ignore SSL Issues (Insecure)' if MinIO is running on the local network.\n\nYou're using Proxmox VE ? Create a MinIO LXC Container : https://community-scripts.github.io/ProxmoxVE/scripts?id=minio, it's easier !"
},
"typeVersion": 1
},
{
"id": "2b2a5de4-b886-496d-a13e-39feefc2da0f",
"name": "List Objects",
"type": "n8n-nodes-base.awsS3",
"position": [
-256,
272
],
"parameters": {
"options": {
"folderKey": "folder/"
},
"operation": "getAll",
"returnAll": true,
"bucketName": "yourBucket"
},
"credentials": {
"aws": {
"name": "<your credential>"
}
},
"retryOnFail": true,
"typeVersion": 2,
"waitBetweenTries": 5000
},
{
"id": "9bca3c5c-325f-4ccc-b4c5-6e33007de4d4",
"name": "Download Objects",
"type": "n8n-nodes-base.awsS3",
"position": [
192,
272
],
"parameters": {
"fileKey": "={{ $json.Key }}",
"bucketName": "yourBucket"
},
"credentials": {
"aws": {
"name": "<your credential>"
}
},
"retryOnFail": true,
"typeVersion": 2,
"waitBetweenTries": 5000
},
{
"id": "513c7183-9134-4ce5-bdf4-41713bb61e27",
"name": "Upload Objects to MinIO",
"type": "n8n-nodes-base.s3",
"position": [
416,
272
],
"parameters": {
"fileName": "={{ $json.Key }}",
"operation": "upload",
"bucketName": "yourBucket",
"additionalFields": {
"parentFolderKey": "awsFiles"
}
},
"credentials": {
"s3": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "6b2939af-0392-4fa7-a54e-599690862903",
"name": "BLOB Listing",
"type": "n8n-nodes-base.azureStorage",
"position": [
-256,
512
],
"parameters": {
"options": {},
"resource": "blob",
"container": {
"__rl": true,
"mode": "id",
"value": "container"
},
"returnAll": true,
"requestOptions": {}
},
"credentials": {
"azureStorageSharedKeyApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "a206d71b-8954-46ce-a04a-2405273970cd",
"name": "Path extraction",
"type": "n8n-nodes-base.splitOut",
"position": [
-32,
512
],
"parameters": {
"options": {},
"fieldToSplitOut": "name"
},
"typeVersion": 1
},
{
"id": "e4a4db90-8e65-4438-89bd-34501695939c",
"name": "BLOB Download",
"type": "n8n-nodes-base.azureStorage",
"position": [
192,
512
],
"parameters": {
"blob": {
"__rl": true,
"mode": "id",
"value": "={{ $json.name }}"
},
"options": {},
"resource": "blob",
"container": {
"__rl": true,
"mode": "list",
"value": "container",
"cachedResultName": "container"
},
"operation": "get",
"requestOptions": {}
},
"credentials": {
"azureStorageSharedKeyApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "d1ca45d3-b763-41f2-a3c4-64d3e2a478d7",
"name": "MinIO BLOB Upload",
"type": "n8n-nodes-base.s3",
"position": [
416,
512
],
"parameters": {
"fileName": "={{ $json.name }}",
"operation": "upload",
"bucketName": "yourBucket",
"additionalFields": {
"parentFolderKey": "azureFiles"
}
},
"credentials": {
"s3": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "e3bc512a-4c70-44d6-a66a-4595cf997819",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-304,
192
],
"parameters": {
"color": 2,
"width": 640,
"height": 224,
"content": "## AWS S3"
},
"typeVersion": 1
},
{
"id": "8d7b06c6-060d-4d67-9626-11dcbfcc9cdb",
"name": "Object Listing",
"type": "n8n-nodes-base.googleCloudStorage",
"position": [
-256,
752
],
"parameters": {
"resource": "object",
"returnAll": true,
"bucketName": "Bucket",
"listFilters": {},
"requestOptions": {}
},
"typeVersion": 1
},
{
"id": "31ac4eee-eb24-41aa-bdcb-af2cad1d27cb",
"name": "Upload on MinIO",
"type": "n8n-nodes-base.s3",
"position": [
416,
752
],
"parameters": {
"fileName": "={{ $json.Key }}",
"operation": "upload",
"bucketName": "yourBucket",
"additionalFields": {
"parentFolderKey": "googleFiles"
}
},
"credentials": {
"s3": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "1d088e46-64e5-4741-b753-db567f51e404",
"name": "Download Objects Data",
"type": "n8n-nodes-base.googleCloudStorage",
"position": [
192,
752
],
"parameters": {
"alt": "media",
"resource": "object",
"operation": "get",
"bucketName": "Bucket",
"objectName": "={{ $json.Key }}",
"getParameters": {},
"requestOptions": {},
"encryptionHeaders": {}
},
"typeVersion": 1
},
{
"id": "d3e64e18-cd07-4428-b795-e21a1f0f98d8",
"name": "Path extraction1",
"type": "n8n-nodes-base.splitOut",
"position": [
-32,
752
],
"parameters": {
"options": {},
"fieldToSplitOut": "name"
},
"typeVersion": 1
},
{
"id": "782c650c-ed90-4018-8394-dab6758a2385",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-304,
432
],
"parameters": {
"color": 5,
"width": 640,
"height": 224,
"content": "## Azure BLOB Storage"
},
"typeVersion": 1
},
{
"id": "b1e2479b-41e3-4ddb-a70e-5c26ec5bfb9a",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
-304,
672
],
"parameters": {
"color": 3,
"width": 640,
"height": 224,
"content": "## Google Cloud Plateform Storage"
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "29403923-776c-4617-b976-1d61cef2cc5b",
"connections": {
"BLOB Listing": {
"main": [
[
{
"node": "Path extraction",
"type": "main",
"index": 0
}
]
]
},
"List Objects": {
"main": [
[
{
"node": "Path Extraction",
"type": "main",
"index": 0
}
]
]
},
"BLOB Download": {
"main": [
[
{
"node": "MinIO BLOB Upload",
"type": "main",
"index": 0
}
]
]
},
"Object Listing": {
"main": [
[
{
"node": "Path extraction1",
"type": "main",
"index": 0
}
]
]
},
"Path Extraction": {
"main": [
[
{
"node": "Download Objects",
"type": "main",
"index": 0
}
]
]
},
"Path extraction": {
"main": [
[
{
"node": "BLOB Download",
"type": "main",
"index": 0
}
]
]
},
"Download Objects": {
"main": [
[
{
"node": "Upload Objects to MinIO",
"type": "main",
"index": 0
}
]
]
},
"Path extraction1": {
"main": [
[
{
"node": "Download Objects Data",
"type": "main",
"index": 0
}
]
]
},
"Schedule Trigger": {
"main": [
[
{
"node": "List Objects",
"type": "main",
"index": 0
}
]
]
},
"Download Objects Data": {
"main": [
[
{
"node": "Upload on MinIO",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
awsazureStorageSharedKeyApis3
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow performs automated, periodic backups of objects from an AWS S3 bucket, an Azure Container or a Google Storage Space to a MinIO S3 bucket running locally or on a dedicated container/VM/server. It can also work if the MinIO bucket is running on a remote cloud…
Source: https://n8n.io/workflows/7284/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Free Support: Setting up and getting the workflow tailord to your needs. One small free adjustment included.
Automated Gmail Email Processing System
This workflow monitors filesystem sync and backup jobs by validating their execution logs, not by running or inspecting the jobs themselves.
This workflow aims to help you and your team track your expenses with OpenAI It automatically collects your OpenAI organization’s API usage and cost data every few days and saves it to a ready-to-use
This workflow is designed for individuals and businesses looking to streamline the creation of engaging promotional videos. Whether you're marketing a product or developing a personal brand, this AI-d