Supabase.Storage.upload

You're seeing just the function upload, go back to Supabase.Storage module for more information.
Link to this function

upload(conn, path, file, file_options \\ [])

View Source

Specs

upload(Supabase.Connection.t(), binary(), binary(), keyword()) ::
  {:error, map()} | {:ok, map()}

Uploads a file to an existing bucket.

Notes

  • Policy permissions required
    • buckets permissions: none
    • objects permissions: insert

Example

Basic

Supabase.storage()
|> Supabase.Storage.from("avatars")
|> Supabase.Storage.upload("public/avatar1.png", "/local/path/to/avatar1.png")

Phoenix Live Upload

def handle_event("save", _params, socket) do
  uploaded_files =
    consume_uploaded_entries(socket, :avatar, fn %{path: path}, entry ->
      {:ok, %{"Key" => blob_key}} =
        Supabase.storage(socket.assigns.access_token)
        |> Supabase.Storage.from("avatars")
        |> Supabase.Storage.upload(
          "public/" <> entry.client_name, path, content_type: entry.client_type)

      blob_key
    )

  {:noreply, assign(socket, uploaded_files: uploaded_files)}
end