nodejs를 사용하여 원격 URL에서 Supabase로 미디어 업로드

소개



최근에 Supabase에 이미지를 대량으로 업로드해야 했는데 nodejs가 좀 녹슬어서 시간을 좀 허비해서 간단한 결과를 다른 분들과 공유해야겠다는 생각이 들었습니다.


수파베이스 설정



첫 번째 단계는 supabase에서 버킷을 생성하거나 공개하거나 올바른 액세스 권한을 갖도록 정책을 생성하는 것입니다.



이 URL에서 모든 RLS 정책을 우회하기 위해 service_role API 키를 얻을 수도 있습니다(공개적으로 공유하거나 표시하지 마십시오).
https://app.supabase.com/project/{YOUR_PROJECT_ID}/settings/api

스크립트 설정



프로젝트를 초기화하려면 npm 또는 yarn이 필요하고 이 두 명령을 실행해야 합니다.

npm init
npm install @supabase/supabase-js node-fetch@2


package.json을 생성하고 필요한 종속성을 설치합니다. 이제 script.js 파일을 만들고 실행할 수 있습니다.

node script.js


Typescript를 사용하고 싶다면 할 수도 있습니다

npx ts-node script.ts



스크립트




import fetch from "node-fetch"
import { createClient } from '@supabase/supabase-js'

const script = async () => {
  const options = {
    schema: 'public',
    autoRefreshToken: true,
    persistSession: true,
    detectSessionInUrl: false,
  }

   const supabase = createClient(
    `https://${process.env.SUPABASE_PROJECT_ID}.supabase.co`,
    process.env.SUPABASE_API_KEY || '',
    options,
  )

  const url = "https://www.grapheine.com/wp-content/uploads/2015/09/nouveau-logo-google-2015.jpg"
  const blob = await fetch(url).then((r) => r.blob())
    await supabase.storage.from('my-new-bucket').upload("my-name" + '.jpg', blob)
    const { publicURL } = supabase.storage.from('covers').getPublicUrl("my-name" + '.jpg')

    //To save it in your DB
    await supabase.from('myTable').update({ logo_url: publicURL }).eq('id', the_thing_id)
}
script()


이제 스크립트를 실행하고 일괄 업로드를 위해 반복할 수 있습니다.


😄 읽어주셔서 감사합니다! 이 기사가 유용하다고 생각되면 더 많은 팁을 원하고 저만의 스타트업 스튜디오를 만드는 여정을 따르세요.

좋은 웹페이지 즐겨찾기