Supabase Storage chính thức ra mắt tính tương thích S3 và Resumable Uploads
- Supabase Storage giờ đã trở thành nhà cung cấp lưu trữ tương thích S3. Đây là một trong những tính năng được yêu cầu nhiều nhất và hiện có sẵn ở bản alpha công khai.
- Resumable Uploads cũng đã chuyển từ bản beta sang bản phát hành chính thức.
- Engine của Supabase Storage hoàn toàn mã nguồn mở và là một trong số ít giải pháp lưu trữ cung cấp 3 giao thức có thể tương tác với nhau để quản lý tệp.
- Standard uploads: dễ bắt đầu
- Resumable uploads: tải lên có thể tiếp tục lại dành cho các tệp lớn
- S3 uploads: để tương thích với nhiều công cụ khác nhau
Tính tương thích S3
- Supabase luôn nỗ lực áp dụng các tiêu chuẩn của ngành. Việc hỗ trợ tiêu chuẩn giúp workload có thể được di chuyển, và đó là một nguyên tắc cốt lõi của sản phẩm.
- API S3 rõ ràng là tiêu chuẩn cho lưu trữ, và chúng tôi đang làm cho nó dễ dùng với các nhà phát triển ở nhiều mức kinh nghiệm khác nhau.
- Giao thức S3 tương thích ngược với các API khác. Nếu bạn đã dùng Storage qua REST hoặc TUS API, từ hôm nay bạn có thể dùng client S3 để tương tác với bucket và tệp: tải lên bằng TUS, phân phối bằng REST và quản lý bằng giao thức S3.
- Giao thức này hoạt động trên cloud, môi trường phát triển cục bộ và tự lưu trữ. Hãy xem tài liệu để kiểm tra khả năng tương thích API.
Xác thực Supabase S3
- Có 2 lựa chọn để xác thực với Supabase S3:
- Thông tin xác thực tiêu chuẩn
access_key và secret_key. Có thể tạo chúng trong trang cài đặt storage. Phương thức xác thực này tương thích rộng rãi với các công cụ hỗ trợ giao thức S3. Vì nó cấp toàn quyền truy cập vào tài nguyên Storage nên được thiết kế chỉ để dùng ở phía máy chủ.
- Trong tương lai, sẽ bổ sung thông tin xác thực access key có phạm vi, cho phép cấp quyền truy cập vào các bucket cụ thể.
- Thông tin xác thực theo phạm vi người dùng có RLS. Cách này tận dụng Row Level Security, một khái niệm đã được áp dụng tốt trên mọi dịch vụ của Supabase. Bạn có thể tương tác với giao thức S3 trong khi giới hạn thao tác storage theo người dùng hoặc vai trò đã xác thực cụ thể, đồng thời vẫn tôn trọng các chính sách RLS hiện có. Điều này có thể thực hiện nhờ header session token mà giao thức S3 hỗ trợ. Xem tài liệu để biết thêm chi tiết về cách dùng cơ chế session token.
Tích hợp tương thích S3
- Nhờ hỗ trợ giao thức S3, giờ đây bạn có thể kết nối Supabase Storage với nhiều công cụ và dịch vụ bên thứ ba. Chỉ cần cung cấp một cặp thông tin xác thực có thể thu hồi bất kỳ lúc nào.
- Bạn có thể dùng các công cụ phổ biến cho sao lưu và di chuyển dữ liệu như AWS CLI, rclone, Cyberduck, v.v.
- Hãy xem hướng dẫn Cyberduck.
S3 cho kỹ sư dữ liệu
- Tính tương thích S3 mang lại nền tảng cơ bản rất tốt cho các kỹ sư dữ liệu. Có thể dùng cùng nhiều công cụ phổ biến như data warehouse kiểu ClickHouse, các query engine như DuckDB, Spark, Trino, Snowflake External Table, cũng như các data loader như Fivetran và Airbyte.
- Trong ví dụ, nhà phân tích dữ liệu Tyler đã chỉ ra cách lưu tệp Parquet trong Supabase Storage và truy vấn trực tiếp bằng DuckDB.
Multipart upload trong S3
- Ngoài standard uploads và resumable uploads, giờ đây hệ thống cũng hỗ trợ multipart upload qua giao thức S3. Nhờ đó, bạn có thể tải các chunk song song để tối đa hóa thông lượng tải lên, rồi ghép chúng lại ở bước cuối.
Resumable Uploads chính thức ra mắt
- Cùng với thông báo GA của nền tảng, chúng tôi rất vui được chia sẻ rằng Resumable Uploads cũng đã chính thức phát hành.
- Resumable Uploads được vận hành bởi giao thức TUS. Quá trình này rất đáng giá nhờ sự hợp tác chặt chẽ với đội ngũ TUS. Xin gửi lời cảm ơn đặc biệt tới @murderlon và @acconut, những người duy trì giao thức TUS, vì cách tiếp cận hợp tác với mã nguồn mở.
Đóng góp của Supabase
- Supabase đã đóng góp một số tính năng nâng cao cho triển khai Node của đặc tả TUS, bao gồm distributed locking, kích thước tệp tối đa, gia hạn thời gian hết hạn và rất nhiều bản sửa lỗi.
- Những tính năng này là thiết yếu với Supabase và có thể sử dụng được nhờ máy chủ Node TUS là mã nguồn mở. Đây cũng là một nguyên tắc cốt lõi khác: sử dụng và hỗ trợ các công cụ sẵn có thay vì tự xây lại từ đầu khi có thể.
Các cải tiến khác
- Chuyển giữa các bucket: trước đây chỉ có thể thực hiện trong cùng một bucket Supabase, giờ đây bạn có thể sao chép và di chuyển object giữa các bucket.
- Mã lỗi được chuẩn hóa: mã lỗi đã được chuẩn hóa trên toàn bộ máy chủ Storage, nhờ đó việc viết logic phân nhánh cho các lỗi cụ thể trở nên dễ dàng hơn nhiều.
- Migration đa tenant: đã cải thiện đáng kể các migration đang chạy trên toàn bộ tenant. Nhờ vậy, lỗi migration trên toàn bộ fleet đã giảm đi, đồng thời các migration chạy dài có thể được thực hiện theo cách bất đồng bộ.
- Tách phụ thuộc: Storage đã được tách hoàn toàn khỏi các sản phẩm Supabase khác, cho phép chạy Storage như một dịch vụ độc lập. Hãy bắt đầu với tệp
docker-compose.
Bắt đầu
- Xem tài liệu để kiểm tra khả năng tương thích S3 API
- Tìm hiểu về xác thực S3
- Thử dùng S3 với Cyberduck: làm theo hướng dẫn tích hợp
- Thử dùng S3 với DuckDB: làm theo hướng dẫn trên YouTube
Ý kiến của GN⁺
- Tính tương thích S3 đưa Supabase Storage tiến gần hơn một bước tới tiêu chuẩn lưu trữ đám mây. Vì nhiều doanh nghiệp đã dùng S3, việc chuyển sang Supabase trở nên rất dễ dàng.
- Tuy nhiên, vì S3 vốn là dịch vụ gốc của AWS, về lâu dài cũng đáng cân nhắc phát triển một giao thức riêng của Supabase. Cần tránh rơi vào tình trạng phụ thuộc vào Amazon.
- Việc Resumable Upload chính thức ra mắt hứa hẹn sẽ giúp việc truyền tải tệp lớn trở nên thuận tiện hơn nhiều. Điểm nổi bật là đã vượt qua các giới hạn của phương thức cũ và nâng cao tính tiện dụng.
- Xây dựng pipeline data engineering tận dụng S3 là một trường hợp sử dụng rất hấp dẫn. Nếu được khai thác tốt, nó sẽ hỗ trợ hiện đại hóa hạ tầng dữ liệu doanh nghiệp.
- Việc Supabase trực tiếp đóng góp cải tiến cho giao thức TUS, và các cải tiến đó lại được hoàn trả về hệ sinh thái mã nguồn mở, là một vòng tuần hoàn tích cực rất ấn tượng. Họ không chỉ là người dùng mã nguồn mở mà còn thực sự làm tốt vai trò của một bên đóng góp.
1 bình luận
Ý kiến trên Hacker News
CEO của Supabase giới thiệu bản cập nhật mới cho sản phẩm Storage. Sản phẩm này lưu trữ các tệp dung lượng lớn và bổ sung khả năng tương thích S3 để có thể dùng cùng hàng nghìn công cụ hiện có. Đặc biệt nhấn mạnh những khả năng dành cho nhà khoa học/kỹ sư dữ liệu.
Một người dùng hoan nghênh việc giờ đây có thể tận dụng các nhà cung cấp CDN hỗ trợ S3, nhưng cũng chỉ ra rằng Supabase vẫn còn những điểm cần cải thiện. Nhìn chung, họ đánh giá tích cực hướng phát triển của Supabase.
Có chia sẻ một ví dụ cho thấy DuckDB giờ đây có thể truy vấn trực tiếp các tệp parquet từ Supabase Storage, nay đã hỗ trợ giao thức S3.
Cũng có ý kiến từ một người dùng ưa thích cách lưu trữ Large Object của PostgreSQL.
Có câu hỏi về mức độ dễ dàng khi self-host Supabase. Họ muốn biết việc chuyển sang self-host vì vấn đề chi phí sẽ dễ đến mức nào.
Cùng với tin Supabase đã chiêu mộ đội ngũ Oriole, cũng có ý kiến từ một người dùng đang cân nhắc tích hợp với Cloudflare R2.
Có câu hỏi về cách Supabase Storage được triển khai, đặc biệt là liệu dữ liệu có thực sự được lưu trong PostgreSQL hay không, và liệu có hỗ trợ cập nhật giao dịch hay không.
Một người dùng bày tỏ sự tin tưởng và gắn bó với Supabase, đồng thời hy vọng công ty sẽ không bị mua lại rồi bị làm hỏng.
Cũng có ý kiến bày tỏ sự khó hiểu trước việc API độc quyền của AWS S3 trên thực tế lại trở thành tiêu chuẩn của ngành.
Một câu hỏi cũng được đặt ra về việc có hỗ trợ pre-signed URL hay không.