Published on

How to check if File Exists in Supabase Storage in Nodejs


Supabase provides an easy-to-use SDK to upload and download files. Previously we've talked about how to upload and download files

In this post, let's see a common use case, checking if a file exists

At the moment, it does not provide exists function in its SDK (and yeah, even if GPT-4 says otherwise 😅)

So we'll be using it's List all buckets and filtering our file against it.

Here's how to do that in Node.js and a similar approach can be followed for other SDKs

npm install @supabase/supabase-js

And get the values for SUPABASE_URL and SUPABASE_PRIVATE_KEY from the Supabase dashboard as well.

// supabaseAdminClient.js
import { createClient } from '@supabase/supabase-js';

const SUPABASE_URL = process.env.SUPABASE_URL;

const supabaseAdmin = createClient(SUPABASE_URL, SUPABASE_PRIVATE_KEY);

export default supabaseAdmin;
import supabaseAdmin from './supabaseAdminClient';

const checkFileExists = async (bucketName, filePath) => {
  const { data, error } = await

  if (error) {
    return false

  const files = data.filter(item => === filePath)
  return files.length > 0

const bucketName = 'YourBucketName';
const filePath = 'path/to/file.pdf'; // in your Supabase bucket
const fileExists = await checkFileExists(bucketName, filePath)
console.log(fileExists) // true or false

Happy filtering files!