import ApiExamples from 'data/products/storage/api-examples'
import DashboardViewData from 'data/products/storage/dashboard-carousel.json'
import StoragePermissionsData from 'data/products/storage/permissions-examples'
import Solutions from 'data/Solutions'
import { ArrowUpRight, Shuffle, Wifi, X } from 'lucide-react'
import { NextSeo } from 'next-seo'
import Link from 'next/link'
import { useRouter } from 'next/router'
import { PRODUCT_NAMES } from 'shared-data/products'
import { Button, Image } from 'ui'
import ImageCarousel from '~/components/Carousels/ImageCarousel'
import SplitCodeBlockCarousel from '~/components/Carousels/SplitCodeBlockCarousel'
import CTABanner from '~/components/CTABanner'
import ExampleCard from '~/components/ExampleCard'
import FeatureColumn from '~/components/FeatureColumn'
import DefaultLayout from '~/components/Layouts/Default'
import SectionContainer from '~/components/Layouts/SectionContainer'
import ProductIcon from '~/components/ProductIcon'
import ProductsNav from '~/components/Products/ProductsNav'
import APISection from '~/components/Sections/APISection'
import ProductHeader from '~/components/Sections/ProductHeader'
function StoragePage() {
// base path for images
const { basePath } = useRouter()
const meta_title = 'Storage | Store any digital content'
const meta_description =
'An open source S3 Compatible Object Store with unlimited scalability, for any file type.'
return (
<>
Integrates well with the rest of Supabase ecosystem, including Auth and Postgres.
Thin API server layer that leverages Postgres' permissions and performance.
S3, Resumable Uploads and Standard Uploads. Enterprise-level scalability.
A complete Object Explorer so that any of your team can use.
Drag and drop uploading, moving objects, and multiple object selection. As easy as
working on your desktop.
any type of digital content
,
]}
subheader={[
<>
An open source S3 Compatible Object Store, with unlimited scalability, for any
file type.
>,
'With custom policies and permissions that are familiar and easy to implement.',
]}
image={[
Interoperable
Lightning fast
Multiple Protocol Support
Sleek dashboard for managing your media
Fast and easy to implement using our powerful library clients.
, ]} footer={[Using Postgres Row Level Security to create Object access rules.
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.
} > Explore documentation