/supabase-tutorials

How to organize folders in Supabase storage?

Learn how to organize folders in Supabase Storage with step-by-step instructions for setting up your project, creating buckets, and managing directories.

Matt Graham, CEO of Rapid Developers

Book a call with an Expert

Starting a new venture? Need to upgrade your web app? RapidDev builds application with your growth in mind.

Book a free No-Code consultation

How to organize folders in Supabase storage?

 

Step 1: Initial Setup and Setup Supabase Project

 

To organize folders in Supabase Storage, you first need to set up a Supabase project.

npx create-next-app@latest supabase-folder-demo
cd supabase-folder-demo
npm install @supabase/supabase-js

 

Step 2: Initialize Supabase

 

You'll need to initialize your Supabase client in your application. Create a file named supabaseClient.js in the root directory of your project.

import { createClient } from '@supabase/supabase-js';

const supabaseUrl = 'https://your-project-ref.supabase.co';
const supabaseAnonKey = 'your-anon-key';

export const supabase = createClient(supabaseUrl, supabaseAnonKey);

Replace 'https://your-project-ref.supabase.co' and 'your-anon-key' with your Supabase project's URL and Anon Key, which you can find in the Supabase dashboard under "Project Settings" > "API".

 

Step 3: Create a Bucket

 

Next, navigate to your Supabase dashboard, go to Storage, and create a new bucket to store your data.

 

Step 4: Organize your Storage Folders

 

To organize folders within a Supabase storage bucket, you'll need to structure them properly. Here's how you can create and manage folders programmatically using the Supabase Storage API:

async function organizeFolderStructure() {
  try {
    // Create a folder named 'images'
    await supabase.storage.from('your-bucket-name').upload('images/dummy.txt', new File([''], 'dummy.txt'));

    // Create a sub-folder named '2023'
    await supabase.storage.from('your-bucket-name').upload('images/2023/dummy.txt', new File([''], 'dummy.txt'));

    // Create another sub-folder named 'thumbnails'
    await supabase.storage.from('your-bucket-name').upload('images/2023/thumbnails/dummy.txt', new File([''], 'dummy.txt'));

    console.log("Folders organized successfully!");
  } catch (error) {
    console.error("Error organizing folders:", error);
  }
}

organizeFolderStructure();

The above code helps you create images/, images/2023/, and images/2023/thumbnails/ folders. Note that Supabase requires a file within each directory upon creation, so a dummy file is uploaded to achieve this.

 

Step 5: List Files and Directories

 

To verify that your folders are correctly organized, use the list functionality provided by Supabase Storage API.

async function listFiles() {
  const { data, error } = await supabase.storage.from('your-bucket-name').list('images/2023/');
  
  if (error) {
    console.error('Error listing files:', error);
  } else {
    console.log('Files in 2023 folder:', data);
  }
}

listFiles();

This function will list all the files and folders within the images/2023/ directory. Adjust the path as needed for your use case.

 

Conclusion

 

By following these steps, you can effectively organize your folders within Supabase Storage, making it easier to manage and access your data. Ensure that you have the correct authentication and read/write permissions set up in your Supabase project to execute these operations.

Want to explore opportunities to work with us?

Connect with our team to unlock the full potential of no-code solutions with a no-commitment consultation!

Book a Free Consultation

Client trust and success are our top priorities

When it comes to serving you, we sweat the little things. That’s why our work makes a big impact.

Rapid Dev was an exceptional project management organization and the best development collaborators I've had the pleasure of working with. They do complex work on extremely fast timelines and effectively manage the testing and pre-launch process to deliver the best possible product. I'm extremely impressed with their execution ability.

CPO, Praction - Arkady Sokolov

May 2, 2023

Working with Matt was comparable to having another co-founder on the team, but without the commitment or cost. He has a strategic mindset and willing to change the scope of the project in real time based on the needs of the client. A true strategic thought partner!

Co-Founder, Arc - Donald Muir

Dec 27, 2022

Rapid Dev are 10/10, excellent communicators - the best I've ever encountered in the tech dev space. They always go the extra mile, they genuinely care, they respond quickly, they're flexible, adaptable and their enthusiasm is amazing.

Co-CEO, Grantify - Mat Westergreen-Thorne

Oct 15, 2022

Rapid Dev is an excellent developer for no-code and low-code solutions.
We’ve had great success since launching the platform in November 2023. In a few months, we’ve gained over 1,000 new active users. We’ve also secured several dozen bookings on the platform and seen about 70% new user month-over-month growth since the launch.

Co-Founder, Church Real Estate Marketplace - Emmanuel Brown

May 1, 2024 

Matt’s dedication to executing our vision and his commitment to the project deadline were impressive. 
This was such a specific project, and Matt really delivered. We worked with a really fast turnaround, and he always delivered. The site was a perfect prop for us!

Production Manager, Media Production Company - Samantha Fekete

Sep 23, 2022