Ngày càng rõ ràng rằng Supabase có thể trở thành một giải pháp thay thế cho Firebase.
Một bước hướng tới điều này đã được thực hiện vào ngày 30 tháng 3 với thông báo về dịch vụ Storage.
Một dịch vụ lưu trữ đối tượng mã nguồn mở với khả năng mở rộng không giới hạn cho bất kỳ loại tệp nào.
Trong hướng dẫn này, tôi trình bày một cách rất ngắn gọn, một dự án trong Angular 11 để tải lên các tệp tích hợp dịch vụ Supabase Storage.
Trong tài liệu có sẵn tạihttps://supabase.io/storage, các tính năng như khả năng tương tác, tích hợp với toàn bộ hệ sinh thái đã được phát triển và khả năng mở rộng được liệt kê.
Tôi thấy vấn đề chính sách và quyền dễ dàng thực hiện rất linh hoạt.
Thông qua bảng điều khiển, có thể duyệt và khám phá một cách rất trực quan với khả năng hiển thị cho các định dạng tệp đa dạng nhất
Ngoài ra còn có cung cấp cho các tính năng khác như tích hợp CDN và chuyển đổi và tối ưu hóa phương tiện tự động.
Tôi đã tạo một dự án trong góc với ng new và sau đó cài đặt thư viện siêu cơ sở dữ liệu với
npm install @ supabase / supabase-js
Ban đầu, chúng tôi sẽ tạo một dịch vụ để thực hiện các phương pháp cho cả việc tạo nhóm và tải tệp lên.
Trong thiết bị đầu cuối của trình soạn thảo, tôi đã thông báo:
ng generate service storage
Việc thực hiện lớp như thế này:
Đối với mục đích của hướng dẫn, tôi đã làm mọi thứ trong thành phần chính. Việc triển khai app.component.ts là như thế này.
Về việc thực hiện:
<! - UPLOAD ->
<div class =" custom-file overflow-hidden rounded-pill mb-5 ">
<input id =" customFile "type = "file" (change) = "selectFile ($ event)" class = "custom-file-input rounded-pill">
<label for = "customFile" class = "custom-file-label rounded-pill"> Choose file < / label>
</div>
<! - End UPLOAD ->
<! - LOADING ->
<div * ngIf = "status" class = "spinner" style = "font-size: 18px">
<div class = "head"> </div>
</div>
<! - End UPLOAD ->
<div * ngIf = "message" class = "alert alert-success" role = "alert">
{{message}}
</div>
Vì chúng tôi không được xác thực, chúng tôi phải cho phép truy cập công khai vào nhóm được đề cập.
Sau đó, để ví dụ hoạt động, trong bảng điều khiển Supabse, hãy chạy lệnh
create policy” Public Access “
on storage.objects for all
using (bucket_id = photos);
Để tóm tắt, tôi đã bỏ qua ở đây mã hoàn chỉnh của mẫu trong ứng dụng và kiểu.
Tuy nhiên, bạn có thể xem đầy đủ trên Github của tôi bên dưới
Đó là nó. Cảm ơn.
Kiểm thử là một phần thiết yếu của quá trình phát triển phần mềm. Nó đảm bảo rằng mã đáng tin cậy, hoạt động như mong đợi và giảm khả năng xảy ra lỗi.
Tôi hoàn toàn hài lòng với tất cả các tính năng mới của Angular v16, bắt đầu bằng tín hiệu và mọi thứ khác. Và tôi không thể cưỡng lại mong muốn nâng cấp một trong những ứng dụng của công ty chỉ để xem nó khó đến mức nào.
Bạn có thể là Điều tra viên OSINT, Người chơi CTF hoặc đơn giản là người nhận được các cuộc gọi spam. Ai đó đang cố xác minh số bạn đã thấy trong quảng cáo.
Trong thế giới có nhịp độ nhanh và cạnh tranh ngày nay, sự nghiệp của một người đóng một vai trò quan trọng trong sự phát triển cá nhân, ổn định tài chính và sự hài lòng trong cuộc sống nói chung. Tuy nhiên, nhiều cá nhân thấy mình bị mắc kẹt trong một chu kỳ trì trệ và không hài lòng không ngừng, dần dần lãng phí trong cuộc sống nghề nghiệp của họ.
[Cảnh báo kích hoạt: Bài tiểu luận này bao gồm các bức ảnh chụp màn hình những người ca ngợi kẻ giết Jordan Neely.] Các quan chức thực thi pháp luật cuối cùng - và có lẽ miễn cưỡng - đã buộc tội Daniel Penny, kẻ đã bóp cổ Jordan Neely cho đến chết, vì tội giết người đó.
Sau nửa đêm, Hayden lái xe chở Katie trở lại ký túc xá đại học của cô ấy sau buổi tối bên nhau. Cô có một lớp học sớm vào buổi sáng và không có quần áo để thay sau khi ở lại với anh ta đêm hôm trước.