N
n8n Store
Workflow Market
Learn Supabase Storage Fundamental

Learn Supabase Storage Fundamental

by alokkumar0 views

Description

Categories

🤖 AI & Machine Learning

Nodes Used

n8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNoten8n-nodes-base.stickyNote
PriceGratis
Views0
Last Updated11/28/2025
workflow.json
{
  "id": "EIOmLVu0xM1NA4BP",
  "meta": {
    "instanceId": "70273a2379644db63ce659827cfd8abac2d0b189210eafa02dd5376e3a62cd1d"
  },
  "name": "Learn Supabase Storage Fundamental",
  "tags": [],
  "nodes": [
    {
      "id": "dcc07b9f-788f-4ea5-9a45-37497ba7319c",
      "name": "fetch_file_to_review1",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -304,
        -416
      ],
      "parameters": {
        "url": "=https://uptttiuxuaacxrdofqgm.supabase.co/storage/v1/object/test-n8n/{{ $json['File Name'] }}",
        "options": {},
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "supabaseApi"
      },
      "credentials": {
        "supabaseApi": {
          "id": "UMM6kngXouHxEYn4",
          "name": "Supabase account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "1b5e12a0-3f2f-421e-ae03-9f31a40d6bd0",
      "name": "upload_to_supabase_storage",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -320,
        -784
      ],
      "parameters": {
        "url": "=https://uptttiuxuaacxrdofqgm.supabase.co/storage/v1/object/test-n8n/{{ $binary.File.fileName }}",
        "method": "POST",
        "options": {},
        "sendBody": true,
        "contentType": "binaryData",
        "authentication": "predefinedCredentialType",
        "inputDataFieldName": "File",
        "nodeCredentialType": "supabaseApi"
      },
      "credentials": {
        "supabaseApi": {
          "id": "UMM6kngXouHxEYn4",
          "name": "Supabase account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "04a263f5-8de9-466f-bb52-ebf55ff75e37",
      "name": "On form submission",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -688,
        -784
      ],
      "webhookId": "94a1537a-fe30-4308-88dc-cc03eff2e5a1",
      "parameters": {
        "options": {
          "buttonLabel": "Upload to Supabase Storage"
        },
        "formTitle": "Supabase Storage File Upload",
        "formFields": {
          "values": [
            {
              "fieldType": "file",
              "fieldLabel": "File",
              "multipleFiles": false
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "9a06dcd2-d1fc-466b-a3a8-1f30591e375f",
      "name": "On form submission1",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -720,
        -416
      ],
      "webhookId": "1c390524-aec0-48e0-b196-5bb983aed13c",
      "parameters": {
        "options": {},
        "formTitle": "Get File from Storage",
        "formFields": {
          "values": [
            {
              "fieldLabel": "File Name"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "72d6ca3b-81ff-43a7-843d-be4d3e542572",
      "name": "On form submission2",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        -672,
        -64
      ],
      "webhookId": "26953730-58b9-4bbc-8ff6-d0adcf20ba4a",
      "parameters": {
        "options": {},
        "formTitle": "Get File from Storage",
        "formFields": {
          "values": [
            {
              "fieldLabel": "File Name"
            }
          ]
        }
      },
      "typeVersion": 2.2
    },
    {
      "id": "160ca4a4-7e79-493a-a0da-5c8d6b78ca07",
      "name": "get_sign_file_for_temp_access",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -240,
        -64
      ],
      "parameters": {
        "url": "=https://uptttiuxuaacxrdofqgm.supabase.co/storage/v1/object/sign/test-n8n/{{ $json['File Name'] }}",
        "method": "POST",
        "options": {},
        "jsonBody": "{\n  \"expiresIn\" : 3600\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "supabaseApi"
      },
      "credentials": {
        "supabaseApi": {
          "id": "UMM6kngXouHxEYn4",
          "name": "Supabase account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "23718644-32eb-4351-b32e-4071bbeb0492",
      "name": "list_all_the_object",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -240,
        336
      ],
      "parameters": {
        "url": "=https://uptttiuxuaacxrdofqgm.supabase.co/storage/v1/object/list/test-n8n",
        "method": "POST",
        "options": {},
        "jsonBody": "{\n    \"prefix\": \"\",\n    \"limit\": 20,\n    \"offset\": 0,\n    \"sortBy\": {\n      \"column\": \"name\",\n      \"order\": \"asc\"\n      }\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "supabaseApi"
      },
      "credentials": {
        "supabaseApi": {
          "id": "UMM6kngXouHxEYn4",
          "name": "Supabase account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "1fa36875-d26f-4bc4-b692-92e8ce0a1bc6",
      "name": "When clicking ‘Execute workflow’",
      "type": "n8n-nodes-base.manualTrigger",
      "position": [
        -672,
        336
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "2e21cf08-8100-4059-88ac-d87a2d1ff0e3",
      "name": "Sticky Note",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1536,
        -400
      ],
      "parameters": {
        "width": 608,
        "height": 512,
        "content": "## Update/create policy to access that. (note based on key we have create policy)\n![alt text](https://github.com/nextwebspark/n8n-templates/blob/main/supabase-n8n-fundamental/policy.JPG?raw=true)"
      },
      "typeVersion": 1
    },
    {
      "id": "269b106b-b758-4dd4-b75f-3374b7b3bf39",
      "name": "Sticky Note2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2080,
        -896
      ],
      "parameters": {
        "width": 528,
        "height": 464,
        "content": "## Get project URL\n![alt text](https://github.com/nextwebspark/n8n-templates/blob/main/supabase-n8n-fundamental/api-key.JPG?raw=true)"
      },
      "typeVersion": 1
    },
    {
      "id": "c4051c9c-3145-4a2f-8645-e9ac21007b44",
      "name": "Sticky Note3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2080,
        144
      ],
      "parameters": {
        "width": 528,
        "height": 464,
        "content": "##  Create a Credential of Suparbase Api Credential Type.\n![alt text](https://github.com/nextwebspark/n8n-templates/blob/main/supabase-n8n-fundamental/n8n-supabase-key.JPG?raw=true)"
      },
      "typeVersion": 1
    },
    {
      "id": "7f774520-ee3c-4a83-b79e-330860cb39e6",
      "name": "Sticky Note4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1536,
        -896
      ],
      "parameters": {
        "width": 592,
        "height": 480,
        "content": "## Get Api key (Anon) key. \n![alt text](https://github.com/nextwebspark/n8n-templates/blob/main/supabase-n8n-fundamental/supdabase-url.JPG?raw=true)"
      },
      "typeVersion": 1
    },
    {
      "id": "d40c816f-e736-4213-8a82-c2b495e3dbc8",
      "name": "Sticky Note5",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2080,
        -416
      ],
      "parameters": {
        "width": 528,
        "height": 544,
        "content": "## Create a bucket in supabase\n![alt text](https://github.com/nextwebspark/n8n-templates/blob/main/supabase-n8n-fundamental/create-bucket.JPG?raw=true)"
      },
      "typeVersion": 1
    },
    {
      "id": "d67a1e56-5cd1-4054-8670-0a63a95abe03",
      "name": "Sticky Note1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -912,
        -880
      ],
      "parameters": {
        "color": 4,
        "width": 928,
        "height": 304,
        "content": "## Lesson 1  - Upload file to storage"
      },
      "typeVersion": 1
    },
    {
      "id": "986ba910-9a34-4256-a968-b65edccbdd7d",
      "name": "Sticky Note6",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -912,
        -512
      ],
      "parameters": {
        "color": 4,
        "width": 928,
        "height": 288,
        "content": "## Lesson 2  - Fetch file from storage"
      },
      "typeVersion": 1
    },
    {
      "id": "066aaed6-6390-4ddb-ba8f-94f9ef84ee1c",
      "name": "Sticky Note7",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -912,
        -160
      ],
      "parameters": {
        "color": 4,
        "width": 944,
        "height": 288,
        "content": "## Lesson 3  - Create Temp document with expire time"
      },
      "typeVersion": 1
    },
    {
      "id": "a1fdb67e-1ea3-4e82-8b98-9ab05b2a1a57",
      "name": "Sticky Note8",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -912,
        224
      ],
      "parameters": {
        "color": 4,
        "width": 960,
        "height": 288,
        "content": "## Lesson 4  - Fetch list all the items in storage"
      },
      "typeVersion": 1
    },
    {
      "id": "ddf906e8-0e37-477e-9b5a-2ed1e9265058",
      "name": "Sticky Note9",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2992,
        -896
      ],
      "parameters": {
        "color": 3,
        "width": 896,
        "height": 1632,
        "content": "## Learn Supabase Storage Fundamentals with n8n\n\nThis template demonstrates how to integrate **Supabase Storage** with **n8n** for uploading, fetching, generating temporary signed URLs, and listing files. It’s a beginner-friendly workflow that helps you understand how to connect Supabase’s storage API with n8n automation.\n\n---\n\n## Who it’s for\n- Developers and teams new to **Supabase** who want a hands-on learning workflow.  \n- Anyone looking to automate file uploads and retrieval from **Supabase Storage**.  \n- Educators or technical teams teaching Supabase fundamentals with **practical demos**.  \n\n---\n\n## How it works\n1. **Upload File** – A user uploads a file through an n8n form, which gets stored in a Supabase storage bucket.  \n2. **Fetch File** – Retrieve files by providing their filename.  \n3. **Temporary Access** – Generate **signed URLs** with custom expiry for secure file sharing.  \n4. **List Objects** – View all stored files in the chosen Supabase bucket.  \n\n---\n\n## How to set up\n- Create a **Supabase account** and set up a project.  \n- Create a **bucket** in Supabase (e.g., `test-n8n`).  \n- Get your **Project URL** and **Anon Key** from Supabase.  \n- In n8n, create a **Supabase API Credential** using your keys.  \n- Import this workflow and connect it with your credentials.  \n- Run the forms to test file upload, retrieval, and listing.  \n\n---\n\n## Requirements\n- A Supabase project with **storage enabled**.  \n- A configured **Supabase API Credential** in n8n.  \n\n---\n\n## Customization\n- Change the bucket name (`test-n8n`) to your own.  \n- Adjust signed URL **expiry times** for temporary file access.  \n- Replace Supabase with another S3-compatible storage if needed.  \n- Extend the workflow with notifications (Slack, Email) after file upload.  \n\n---\n\n## 📝 Lessons Included\n- **Lesson 1** – Upload file to Supabase storage.  \n- **Lesson 2** – Fetch file from storage.  \n- **Lesson 3** – Create a temporary signed document with expiry.  \n- **Lesson 4** – List all items in Supabase storage.  \n\n---\n\n## 🔑 Prerequisites\n- Supabase account + project.  \n- Project URL and API Key (Anon).  \n- Bucket created in Supabase.  \n- Policy created to allow read/write access.  \n- n8n with Supabase API credentials configured.  \n\n---"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "95dabc42-1c4b-4b25-86a6-09b72a439252",
  "connections": {
    "On form submission": {
      "main": [
        [
          {
            "node": "upload_to_supabase_storage",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission1": {
      "main": [
        [
          {
            "node": "fetch_file_to_review1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "On form submission2": {
      "main": [
        [
          {
            "node": "get_sign_file_for_temp_access",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "fetch_file_to_review1": {
      "main": [
        []
      ]
    },
    "When clicking ‘Execute workflow’": {
      "main": [
        [
          {
            "node": "list_all_the_object",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}

相关工作流