diff --git a/README.md b/README.md
index 0ee9005e2d0..e2e2fbbae02 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,7 @@
- [x] Authentication and authorization
- [x] Auto-generated APIs
- [x] Dashboard
-- [ ] Storage (coming soon)
+- [x] Storage
- [ ] Functions (coming soon)
## Documentation
diff --git a/www/components/Hero.tsx b/www/components/Hero.tsx
index 32c0037efd2..26cef2934bd 100644
--- a/www/components/Hero.tsx
+++ b/www/components/Hero.tsx
@@ -21,9 +21,9 @@ const Hero = () => {
Create a backend in less than 2 minutes. Start your project with a Postgres
- Database, Authentication, instant APIs, and realtime subscriptions.
+ Database, Authentication, instant APIs, realtime subscriptions and Storage.
- Storage and serverless functions coming soon
+ Serverless functions coming soon
diff --git a/www/data/Solutions.json b/www/data/Solutions.json
index 6838215630d..e3494094814 100644
--- a/www/data/Solutions.json
+++ b/www/data/Solutions.json
@@ -20,8 +20,8 @@
"icon": "M5 8h14M5 8a2 2 0 110-4h14a2 2 0 110 4M5 8v10a2 2 0 002 2h10a2 2 0 002-2V8m-9 4h4",
"description": "Store, organize, and serve large files. Any media, including videos and images.",
"description_short": "",
- "label": "Coming soon",
- "url": "https://supabasesubscribe.vercel.app/subscription/storage"
+ "label": "",
+ "url": "/storage"
},
"functions": {
"name": "Functions",
diff --git a/www/data/products/storage/dashboard-carousel.json b/www/data/products/storage/dashboard-carousel.json
index d5969539380..88bf17f0f8b 100644
--- a/www/data/products/storage/dashboard-carousel.json
+++ b/www/data/products/storage/dashboard-carousel.json
@@ -3,7 +3,7 @@
"title": "File previews",
"label": "File previews",
"img_url": "/images/product/storage/dashboard-view/file-previews.jpg",
- "text": "Preview any media type, including video and audio. "
+ "text": "Preview any media type, including video and audio."
},
{
"title": "Column view",
@@ -15,7 +15,7 @@
"title": "List view",
"label": "List view",
"img_url": "/images/product/storage/dashboard-view/list-view.jpg",
- "text": "List View to find detailed File meta data at a glance."
+ "text": "List View to find detailed File metadata at a glance."
},
{
"title": "Multi select actions",
diff --git a/www/data/products/storage/permissions-examples.js b/www/data/products/storage/permissions-examples.js
index 2aaa2f401d8..d641562c138 100644
--- a/www/data/products/storage/permissions-examples.js
+++ b/www/data/products/storage/permissions-examples.js
@@ -7,7 +7,7 @@ on storage.objects for all
with check ( bucket_id = 'avatars' );
`,
detail_title: 'Allow public CRUD access to a bucket',
- detail_text: "This will allow any user access to the bucket named 'bucket1'",
+ detail_text: "This will allow any user access to the bucket named 'avatars'",
badges_label: '',
badges: [],
url: '',
@@ -18,13 +18,13 @@ with check ( bucket_id = 'avatars' );
code: `create policy "Public access to a folder"
on storage.objects for all
using (
- bucket_id = 'bucket1'
+ bucket_id = 'avatars'
and (storage.foldername(name))[1] = 'public'
);
`,
detail_title: 'Allow public CRUD access to a folder in a bucket',
detail_text:
- "This will allow any user access to the folder named 'public' in the bucket 'bucket1'",
+ "This will allow any user access to the folder named 'public' in the bucket 'avatars'",
badges_label: '',
badges: [],
url: '',
@@ -35,12 +35,12 @@ using (
code: `create policy "Logged in access"
on storage.objects
for all using (
- bucket_id = 'bucket1'
+ bucket_id = 'avatars'
and auth.role() = 'authenticated'
);`,
detail_title: 'Allow any authenticated user access to a folder',
detail_text:
- "This will allow any authenticated user access to the folder named 'authenticated' in the bucket 'bucket1'",
+ "This will allow any authenticated user access to the folder named 'authenticated' in the bucket 'avatars'",
badges_label: '',
badges: [],
url: '',
@@ -51,7 +51,7 @@ for all using (
code: `create policy "Individual access"
on storage.objects for all
using (
- bucket_id = 'bucket1'
+ bucket_id = 'avatars'
and name = 'folder/only_uid.jpg'
and auth.uid() = 'd8c7bce9-cfeb-497b-bd61-e66ce2cbdaa2'
);`,
diff --git a/www/pages/storage/Storage.tsx b/www/pages/storage/Storage.tsx
index bda4606fe3d..f40b27eea05 100644
--- a/www/pages/storage/Storage.tsx
+++ b/www/pages/storage/Storage.tsx
@@ -98,10 +98,10 @@ function AuthPage() {
- Write less code
+ Interoperable
- Interoperable with all other Supabase services, including Auth and Postgres.
+ Integrates well with the rest of Supabase ecosystem, including Auth and Postgres.
{/*
Familiar and easy to use permissions mean that your content is secure and accessible
@@ -130,7 +130,7 @@ function AuthPage() {
Dependable
- Enterprise-level uptime complete with automatic backups.
+ Enterprise-level scalability and durability.
{/* A durability rating of 99.999999999%.
*/}
@@ -189,7 +189,7 @@ function AuthPage() {
}
title="CDN integration"
- text="Served from the edge to reduce latency."
+ text="Serve from the edge to reduce latency."
/>
Coming soon
@@ -226,10 +226,10 @@ function AuthPage() {
with Supabase Auth
- Using Postgres Row Level Security to create File access rules.
+ Using Postgres Row Level Security to create Object access rules.
- Supabase Storage is built around Postgres so that you can use any
+ Storage Authorization is built around Postgres so that you can use any
combination of SQL, Postgres functions, and even your own metadata to write
policies.