Supabase.Client.Storage.Hostname (supabase_potion v1.0.0)

Copy Markdown

Handles hostname transformation for storage subdomain routing.

This module transforms official Supabase domain URLs to use the storage-specific subdomain, which is optimized for large file uploads (>50GB) and provides better streaming performance.

Transformation Rules

  • Official Supabase domains (.supabase.co, .supabase.in, .supabase.red) are transformed to use the storage.supabase.* subdomain
  • URLs already containing storage.supabase. are left unchanged
  • Custom domains (non-Supabase) are left untouched
  • Localhost and IP addresses are left unchanged

Examples

iex> Supabase.Client.Storage.Hostname.transform_storage_url("https://abc123.supabase.co/storage/v1")
"https://abc123.storage.supabase.co/storage/v1"

iex> Supabase.Client.Storage.Hostname.transform_storage_url("https://abc123.supabase.in/storage/v1")
"https://abc123.storage.supabase.in/storage/v1"

iex> Supabase.Client.Storage.Hostname.transform_storage_url("https://abc123.storage.supabase.co/storage/v1")
"https://abc123.storage.supabase.co/storage/v1"

iex> Supabase.Client.Storage.Hostname.transform_storage_url("https://custom-domain.com/storage/v1")
"https://custom-domain.com/storage/v1"

iex> Supabase.Client.Storage.Hostname.transform_storage_url("http://localhost:54321/storage/v1")
"http://localhost:54321/storage/v1"

Summary

Functions

Transforms a storage URL to use the storage subdomain if applicable.

Functions

transform_storage_url(storage_url)

@spec transform_storage_url(String.t() | nil) :: String.t() | nil

Transforms a storage URL to use the storage subdomain if applicable.

This function only transforms official Supabase domains that don't already have the storage subdomain. Custom domains and non-Supabase URLs are returned unchanged.

Parameters

  • storage_url - The storage URL to transform (string)

Returns

The transformed URL as a string. If transformation is not applicable, returns the original URL unchanged.

Examples

iex> Supabase.Client.Storage.Hostname.transform_storage_url("https://project.supabase.co/storage/v1")
"https://project.storage.supabase.co/storage/v1"

iex> Supabase.Client.Storage.Hostname.transform_storage_url("https://project.storage.supabase.co/storage/v1")
"https://project.storage.supabase.co/storage/v1"

iex> Supabase.Client.Storage.Hostname.transform_storage_url("https://custom.example.com/storage/v1")
"https://custom.example.com/storage/v1"

iex> Supabase.Client.Storage.Hostname.transform_storage_url(nil)
nil