ความเข้ากันได้กับ 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:
- ข้อมูลรับรองมาตรฐาน
access_key และ secret_key ซึ่งสามารถสร้างได้จากหน้าการตั้งค่า storage วิธีการยืนยันตัวตนนี้เข้ากันได้อย่างกว้างขวางกับเครื่องมือที่รองรับโปรโตคอล S3 เนื่องจากให้สิทธิ์เข้าถึงทรัพยากร Storage ทั้งหมด จึงออกแบบมาให้ใช้เฉพาะฝั่งเซิร์ฟเวอร์เท่านั้น
- ในอนาคตจะมีการเพิ่มข้อมูลรับรอง access key แบบกำหนดขอบเขต ซึ่งสามารถให้สิทธิ์เข้าถึงเฉพาะบางบักเก็ตได้
- ข้อมูลรับรองระดับผู้ใช้ที่มี 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 ความคิดเห็น
ความเห็นบน 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 หรือไม่