3 คะแนน โดย GN⁺ 2024-04-20 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

ความเข้ากันได้กับ S3 ของ Supabase Storage และการเปิดตัว Resumable Uploads แบบ GA

  • ตอนนี้ Supabase Storage กลายเป็นผู้ให้บริการสตอเรจที่เข้ากันได้กับ S3 แล้ว นี่เป็นหนึ่งในฟีเจอร์ที่มีการร้องขอมากที่สุด และขณะนี้พร้อมใช้งานในสถานะ public alpha
  • Resumable Uploads ก็ย้ายจากเวอร์ชันเบต้าไปเป็นเวอร์ชันพร้อมใช้งานทั่วไปแล้ว
  • เอนจิน Supabase Storage เป็นโอเพนซอร์สเต็มรูปแบบ และเป็นหนึ่งในโซลูชันสตอเรจไม่กี่ตัวที่ให้โปรโตคอลที่ทำงานร่วมกันได้ 3 แบบสำหรับการจัดการไฟล์
    • Standard uploads: เริ่มต้นใช้งานได้ง่าย
    • Resumable uploads: อัปโหลดแบบทำต่อได้สำหรับไฟล์ขนาดใหญ่
    • S3 uploads: เพื่อความเข้ากันได้กับเครื่องมือที่หลากหลาย

ความเข้ากันได้กับ S3

  • Supabase พยายามใช้มาตรฐานอุตสาหกรรมมาโดยตลอด การรองรับมาตรฐานทำให้สามารถย้ายเวิร์กโหลดได้ และนี่คือหลักการสำคัญของผลิตภัณฑ์
  • S3 API คือมาตรฐานของสตอเรจอย่างไม่ต้องสงสัย และเรากำลังทำให้มันใช้งานได้สำหรับนักพัฒนาทุกระดับประสบการณ์
  • โปรโตคอล S3 เข้ากันได้ย้อนหลังกับ API อื่น ๆ หากคุณใช้งาน Storage ผ่าน REST หรือ TUS API อยู่แล้ว ตั้งแต่วันนี้คุณสามารถใช้ S3 client เพื่อโต้ตอบกับบักเก็ตและไฟล์ได้: อัปโหลดด้วย TUS, ให้บริการด้วย REST และจัดการด้วยโปรโตคอล S3
  • โปรโตคอลนี้ทำงานได้ทั้งบนคลาวด์, การพัฒนาแบบโลคัล และการโฮสต์เอง โปรดตรวจสอบความเข้ากันได้ของ API ในเอกสาร

การยืนยันตัวตนของ Supabase S3

  • มี 2 ตัวเลือกสำหรับการยืนยันตัวตนกับ Supabase S3:
    1. ข้อมูลรับรองมาตรฐาน access_key และ secret_key ซึ่งสามารถสร้างได้จากหน้าการตั้งค่า storage วิธีการยืนยันตัวตนนี้เข้ากันได้อย่างกว้างขวางกับเครื่องมือที่รองรับโปรโตคอล S3 เนื่องจากให้สิทธิ์เข้าถึงทรัพยากร Storage ทั้งหมด จึงออกแบบมาให้ใช้เฉพาะฝั่งเซิร์ฟเวอร์เท่านั้น
      • ในอนาคตจะมีการเพิ่มข้อมูลรับรอง access key แบบกำหนดขอบเขต ซึ่งสามารถให้สิทธิ์เข้าถึงเฉพาะบางบักเก็ตได้
    2. ข้อมูลรับรองระดับผู้ใช้ที่มี RLS วิธีนี้ใช้ประโยชน์จาก Row Level Security ซึ่งเป็นแนวคิดที่ถูกนำไปใช้อย่างแพร่หลายในทุกบริการของ Supabase คุณสามารถโต้ตอบกับโปรโตคอล S3 โดยกำหนดขอบเขตงานด้าน storage ให้กับผู้ใช้หรือบทบาทที่ยืนยันตัวตนแล้ว พร้อมทั้งยังคงเคารพนโยบาย RLS เดิม วิธีนี้ทำได้ผ่านการใช้ session token header ที่โปรโตคอล S3 รองรับ สามารถดูรายละเอียดเพิ่มเติมเกี่ยวกับการใช้กลไก session token ได้ในเอกสาร

การเชื่อมต่อแบบเข้ากันได้กับ S3

  • ด้วยการรองรับโปรโตคอล S3 ตอนนี้คุณสามารถเชื่อม Supabase Storage เข้ากับเครื่องมือและบริการของบุคคลที่สามได้มากมาย เพียงให้คู่ข้อมูลรับรองที่สามารถเพิกถอนได้ทุกเมื่อ
  • คุณสามารถใช้เครื่องมือยอดนิยมสำหรับการสำรองข้อมูลและการย้ายข้อมูล เช่น AWS CLI, rclone และ Cyberduck
  • โปรดดูคู่มือ Cyberduck

S3 สำหรับวิศวกรข้อมูล

  • ความเข้ากันได้กับ S3 เป็นพื้นฐานที่ดีสำหรับวิศวกรข้อมูล สามารถใช้งานร่วมกับเครื่องมือยอดนิยมได้มากมาย เช่น data warehouse อย่าง ClickHouse, query engine อย่าง DuckDB, Spark, Trino และ Snowflake External Table รวมถึง data loader อย่าง Fivetran และ Airbyte
  • ในตัวอย่าง Tyler นักวิเคราะห์ข้อมูลของเราได้แสดงวิธีเก็บไฟล์ Parquet ใน Supabase Storage และ query โดยตรงด้วย DuckDB

การอัปโหลดแบบ multipart ของ S3

  • นอกเหนือจาก standard uploads และ resumable uploads แล้ว ตอนนี้ยังรองรับ multipart upload ผ่านโปรโตคอล S3 อีกด้วย ช่วยให้อัปโหลดชิ้นส่วนแบบขนานเพื่อเพิ่ม throughput ของการอัปโหลดให้สูงสุด และนำมารวมกันในตอนท้าย

การเปิดตัว Resumable Uploads แบบ GA

  • พร้อมกับการประกาศ GA ของแพลตฟอร์ม เรายินดีที่จะแจ้งว่า Resumable Uploads ก็เปิดตัวแบบ GA แล้วเช่นกัน
  • Resumable Uploads ขับเคลื่อนด้วยโปรโตคอล TUS กระบวนการนี้ให้ผลลัพธ์ที่คุ้มค่ามากจากการได้ร่วมงานอย่างใกล้ชิดกับทีม TUS ขอขอบคุณอย่างมากต่อ @murderlon และ @acconut ผู้ดูแลโปรโตคอล TUS สำหรับแนวทางการทำงานร่วมกันในโอเพนซอร์ส

การมีส่วนร่วมของ Supabase

  • Supabase ได้มีส่วนร่วมเพิ่มฟีเจอร์ขั้นสูงบางอย่างให้กับ implementation แบบ Node ของข้อกำหนด TUS รวมถึง distributed locking, ขนาดไฟล์สูงสุด, การขยายเวลาหมดอายุ และการแก้บั๊กอีกมากมาย
  • ฟีเจอร์เหล่านี้จำเป็นต่อ Supabase และพร้อมใช้งานได้เพราะ TUS node server เป็นโอเพนซอร์ส นี่คืออีกหนึ่งหลักการสำคัญ: ใช้และสนับสนุนเครื่องมือที่มีอยู่แล้วแทนการสร้างใหม่ตั้งแต่ต้นเมื่อเป็นไปได้

การปรับปรุงอื่น ๆ

  • การถ่ายโอนข้ามบักเก็ต: ก่อนหน้านี้ทำได้เฉพาะภายใน Supabase bucket เดียวกัน ตอนนี้สามารถคัดลอกและย้ายอ็อบเจ็กต์ข้ามบักเก็ตได้แล้ว
  • รหัสข้อผิดพลาดที่เป็นมาตรฐาน: รหัสข้อผิดพลาดถูกทำให้เป็นมาตรฐานทั่วทั้ง Storage server ทำให้ตอนนี้เขียน branching logic สำหรับข้อผิดพลาดเฉพาะได้ง่ายขึ้นมาก
  • การย้ายข้อมูลแบบมัลติเทนเนนต์: ได้ปรับปรุงการทำ migration ที่รันบนทุกเทนเนนต์อย่างมาก ส่งผลให้ข้อผิดพลาดจาก migration ทั่วทั้งระบบลดลง และสามารถรัน migration ที่ใช้เวลานานในแบบอะซิงโครนัสได้
  • การแยก dependencies: Storage ถูกแยกออกจากผลิตภัณฑ์ Supabase อื่น ๆ อย่างสมบูรณ์ ทำให้สามารถรัน Storage เป็นบริการแบบ standalone ได้ เริ่มต้นได้ด้วยไฟล์ docker-compose

เริ่มต้นใช้งาน

  • ตรวจสอบความเข้ากันได้ของ S3 API ในเอกสาร
  • เรียนรู้เกี่ยวกับการยืนยันตัวตนของ S3
  • ลองใช้ S3 กับ Cyberduck: ทำตามคู่มือการเชื่อมต่อ
  • ลองใช้ S3 กับ DuckDB: ทำตามคู่มือบน YouTube

ความเห็นของ GN⁺

  • ความเข้ากันได้กับ S3 ทำให้ Supabase Storage เข้าใกล้มาตรฐานคลาวด์สตอเรจมากขึ้นอีกขั้น หลายองค์กรใช้ S3 อยู่แล้ว จึงทำให้การย้ายมาใช้ Supabase ง่ายมาก
  • แต่ S3 เดิมเป็นบริการของ AWS ดังนั้นในระยะยาว Supabase อาจพิจารณาพัฒนาโปรโตคอลเฉพาะของตนเองด้วย ควรหลีกเลี่ยงการตกอยู่ในภาวะพึ่งพา Amazon
  • การเปิดตัว Resumable Uploads แบบ GA น่าจะทำให้การส่งไฟล์ขนาดใหญ่สะดวกขึ้นมาก จุดเด่นคือการก้าวข้ามข้อจำกัดของวิธีเดิมและเพิ่มความสะดวกในการใช้งาน
  • การสร้าง data engineering pipeline โดยใช้ S3 เป็นกรณีใช้งานที่น่าสนใจ หากนำไปใช้ได้ดี ก็จะช่วยให้โครงสร้างพื้นฐานข้อมูลขององค์กรทันสมัยขึ้น
  • สิ่งที่น่าประทับใจคือ Supabase มีส่วนร่วมโดยตรงในการปรับปรุงโปรโตคอล TUS และสิ่งนั้นก็ย้อนกลับไปเสริมระบบนิเวศโอเพนซอร์สอีกทอดหนึ่ง แสดงให้เห็นว่าพวกเขาไม่ได้เป็นเพียงผู้ใช้โอเพนซอร์ส แต่ทำหน้าที่เป็นผู้มีส่วนร่วมได้อย่างเต็มที่

1 ความคิดเห็น

 
GN⁺ 2024-04-20
ความเห็นบน Hacker News
  • CEO ของ Supabase แนะนำอัปเดตใหม่ของผลิตภัณฑ์ Storage ซึ่งสามารถเก็บไฟล์ขนาดใหญ่และเพิ่มความเข้ากันได้กับ S3 ทำให้ใช้งานร่วมกับเครื่องมือเดิมนับพันรายการได้ โดยให้ความสำคัญเป็นพิเศษกับความเป็นไปได้สำหรับนักวิทยาศาสตร์ข้อมูล/วิศวกรข้อมูล

  • ผู้ใช้รายหนึ่งยินดีกับการที่สามารถใช้ผู้ให้บริการ CDN ที่รองรับ S3 ได้ แต่ก็ชี้ว่า Supabase ยังมีจุดที่ต้องปรับปรุงอยู่ โดยรวมแล้วยังมองทิศทางการพัฒนาของ Supabase ในแง่บวก

  • มีการแชร์ตัวอย่างที่ DuckDB สามารถคิวรีไฟล์ parquet ได้โดยตรงจาก Supabase Storage ซึ่งตอนนี้รองรับโปรโตคอล S3 แล้ว

  • มีความเห็นจากผู้ใช้ที่ชอบวิธีจัดเก็บ Large Object ของ PostgreSQL มากกว่าเช่นกัน

  • มีการตั้งคำถามเกี่ยวกับความง่ายในการ self-host Supabase โดยสงสัยว่าการย้ายไป self-host จะง่ายแค่ไหนเมื่อพิจารณาจากเรื่องต้นทุน

  • มีความเห็นจากผู้ใช้ที่กำลังพิจารณาการเชื่อมต่อกับ Cloudflare R2 พร้อมทั้งกล่าวถึงข่าวที่ Supabase ดึงทีม Oriole เข้ามา

  • มีคำถามเกี่ยวกับวิธีการทำงานของ Supabase Storage โดยเฉพาะว่าข้อมูลถูกเก็บอยู่ใน PostgreSQL จริงหรือไม่ และรองรับการอัปเดตแบบทรานแซกชันหรือไม่

  • มีผู้ใช้แสดงความเชื่อมั่นและความผูกพันต่อ Supabase พร้อมหวังว่าจะไม่ถูกซื้อกิจการแล้วเสียของไป

  • มีความเห็นที่แสดงความแปลกใจว่า API แบบปิดของ AWS S3 กลายมาเป็นมาตรฐานโดยพฤตินัยของอุตสาหกรรมได้อย่างไร

  • มีการตั้งคำถามด้วยว่ารองรับ pre-signed URL หรือไม่