Bird
Raised Fist0
Supabasecloud~30 mins

Creating storage buckets in Supabase - Try It Yourself

Choose your learning style10 modes available
Creating storage buckets
📖 Scenario: You are setting up a cloud project to store files securely. You will create storage buckets to organize and manage your files in Supabase.
🎯 Goal: Build a Supabase storage setup by creating a dictionary of buckets, add a configuration for public access, then write the code to create these buckets using Supabase's API.
📋 What You'll Learn
Create a dictionary called buckets with exact bucket names and descriptions
Add a configuration variable called public_access set to False
Write a loop using for bucket_name, bucket_info in buckets.items() to create buckets
Use supabase.storage.create_bucket with bucket_name and public=public_access to create each bucket
💡 Why This Matters
🌍 Real World
Cloud projects often need organized storage for files. Creating buckets helps separate and secure different file types.
💼 Career
Knowing how to programmatically create and configure storage buckets is essential for cloud engineers and developers managing cloud storage.
Progress0 / 4 steps
1
Create the initial buckets dictionary
Create a dictionary called buckets with these exact entries: 'images': 'Stores user images', 'documents': 'Stores user documents', and 'backups': 'Stores backup files'.
Supabase
Hint

Use curly braces to create a dictionary with keys and values as shown.

2
Add public access configuration
Add a variable called public_access and set it to False to configure bucket privacy.
Supabase
Hint

Use a simple assignment statement to set public_access.

3
Write the loop to create buckets
Write a for loop using for bucket_name, bucket_info in buckets.items() to iterate over the buckets dictionary.
Supabase
Hint

Use the items() method to get keys and values from the dictionary.

4
Complete bucket creation with Supabase API
Inside the loop, call supabase.storage.create_bucket(bucket_name, public=public_access) to create each bucket with the configured public access.
Supabase
Hint

Use the create_bucket method with the bucket name and public parameter.

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