Bird
Raised Fist0
Supabasecloud~3 mins

Creating storage buckets in Supabase - Why You Should Know This

Choose your learning style10 modes available
The Big Idea

What if you could stop wasting time organizing files and let the cloud do it for you?

The Scenario

Imagine you have to save all your photos and documents in different folders on your computer, but you have to create each folder by hand every time you want to organize something new.

The Problem

Doing this manually takes a lot of time and you might forget to create a folder or put files in the wrong place. It's easy to make mistakes and hard to keep everything neat and safe.

The Solution

Creating storage buckets lets you make special containers in the cloud where you can automatically store and organize your files. This way, you don't have to create folders by hand, and your files stay safe and easy to find.

Before vs After
✗ Before
mkdir photos
mkdir documents
cp file1 photos/
cp file2 documents/
✓ After
await supabase.storage.createBucket('photos')
await supabase.storage.createBucket('documents')
What It Enables

It makes storing and managing files simple, fast, and reliable, so you can focus on using your data instead of organizing it.

Real Life Example

A photographer uses storage buckets to automatically save and sort pictures from different events without worrying about losing or mixing them up.

Key Takeaways

Manual file organization is slow and error-prone.

Storage buckets automate file storage and keep data safe.

This helps you manage files easily and focus on your work.

Practice

(1/5)
1. What is the main purpose of creating a storage bucket in Supabase?
easy
A. To send emails automatically
B. To run server-side code
C. To create a database table
D. To organize and protect files in the cloud

Solution

  1. Step 1: Understand storage bucket purpose

    A storage bucket is used to hold and organize files securely in the cloud.
  2. Step 2: Compare options

    Options B, C, and D describe other services not related to file storage.
  3. Final Answer:

    To organize and protect files in the cloud -> Option D
  4. Quick Check:

    Storage bucket = organize and protect files [OK]
Hint: Buckets store files safely in the cloud [OK]
Common Mistakes:
  • Confusing buckets with databases
  • Thinking buckets run code
  • Assuming buckets send emails
2. Which is the correct way to create a private storage bucket named photos in Supabase?
easy
A. supabase.storage.createBucket('photos', { access: 'private' })
B. supabase.storage.createBucket('photos', { public: false })
C. supabase.storage.createBucket('photos', { private: true })
D. supabase.storage.createBucket('photos', { isPublic: true })

Solution

  1. Step 1: Recall correct method signature

    The method createBucket takes the bucket name and an options object with a public boolean.
  2. Step 2: Identify correct privacy option

    Setting public: false makes the bucket private. Other options use incorrect keys.
  3. Final Answer:

    supabase.storage.createBucket('photos', { public: false }) -> Option B
  4. Quick Check:

    Use public: false for private bucket [OK]
Hint: Use public: false to make bucket private [OK]
Common Mistakes:
  • Using wrong option keys like isPublic or private
  • Setting public: true for private buckets
  • Confusing access property with public
3. What will be the result of this code snippet?
const { data, error } = await supabase.storage.createBucket('docs', { public: true });
console.log(data);
medium
A. An error because 'public' is not a valid option
B. Undefined because createBucket returns nothing
C. An object with bucket details including name 'docs' and public true
D. A boolean true indicating success

Solution

  1. Step 1: Understand createBucket return value

    The method returns an object with bucket info if successful, including name and public status.
  2. Step 2: Analyze the code output

    Since public: true is valid, data will contain bucket details, not an error or boolean.
  3. Final Answer:

    An object with bucket details including name 'docs' and public true -> Option C
  4. Quick Check:

    createBucket returns bucket info object [OK]
Hint: createBucket returns bucket info object on success [OK]
Common Mistakes:
  • Thinking it returns only true/false
  • Assuming it throws error for public option
  • Expecting no return value
4. You wrote this code but get an error:
await supabase.storage.createBucket('files', { public: 'no' });

What is the likely cause?
medium
A. The 'public' option must be a boolean, not a string
B. Bucket name 'files' is invalid
C. createBucket requires a callback function
D. Missing await keyword before createBucket

Solution

  1. Step 1: Check option types

    The public option expects a boolean true or false, not a string.
  2. Step 2: Identify error cause

    Passing 'no' as a string causes a type error. Bucket name and await usage are correct.
  3. Final Answer:

    The 'public' option must be a boolean, not a string -> Option A
  4. Quick Check:

    public option = boolean, not string [OK]
Hint: Use true/false for public, not strings [OK]
Common Mistakes:
  • Passing 'yes' or 'no' as strings
  • Ignoring await keyword
  • Using invalid bucket names
5. You want to create two buckets: one public named images and one private named backups. Which code correctly does this?
hard
A. await supabase.storage.createBucket('images', { public: true }); await supabase.storage.createBucket('backups', { public: false });
B. await supabase.storage.createBucket('images', { public: false }); await supabase.storage.createBucket('backups', { public: true });
C. await supabase.storage.createBucket('images'); await supabase.storage.createBucket('backups');
D. await supabase.storage.createBucket('images', { access: 'public' }); await supabase.storage.createBucket('backups', { access: 'private' });

Solution

  1. Step 1: Set correct privacy flags

    Public bucket needs public: true, private bucket needs public: false.
  2. Step 2: Verify method calls

    await supabase.storage.createBucket('images', { public: true }); await supabase.storage.createBucket('backups', { public: false }); correctly sets these flags. await supabase.storage.createBucket('images', { public: false }); await supabase.storage.createBucket('backups', { public: true }); reverses them. await supabase.storage.createBucket('images'); await supabase.storage.createBucket('backups'); omits privacy, defaulting to private. await supabase.storage.createBucket('images', { access: 'public' }); await supabase.storage.createBucket('backups', { access: 'private' }); uses invalid keys.
  3. Final Answer:

    await supabase.storage.createBucket('images', { public: true }); await supabase.storage.createBucket('backups', { public: false }); -> Option A
  4. Quick Check:

    Public = true, Private = false [OK]
Hint: Public bucket: public true; Private bucket: public false [OK]
Common Mistakes:
  • Mixing up public true/false
  • Omitting privacy option
  • Using wrong option keys like access
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard