Hướng dẫn

Trình quản lý tệp cho MinIO và S3 tự lưu trữ: kết nối với Nubbo

Cách kết nối bộ lưu trữ tương thích S3 của riêng bạn, như MinIO, Ceph hoặc SeaweedFS, với Nubbo: endpoint, khóa, khu vực, CORS và cách xử lý khi có lỗi.

Nubbo kết nối với mọi bộ lưu trữ tương thích S3 ký bằng Signature V4, như MinIO, Ceph hoặc SeaweedFS, trên máy chủ của riêng bạn hoặc ở một nhà cung cấp khác. Bạn chỉ cần URL endpoint, một khóa và khu vực. Hướng dẫn này đi theo từng bước của trình hướng dẫn Nubbo, với cả hai cách: tự động hoặc với khóa giới hạn cho một bucket.

Bạn nhận được gì

  • Duyệt bucket như một ổ đĩa: thư mục, chế độ xem, tìm kiếm, thùng rác, nhãn và yêu thích.
  • Tải tệp lên và tải xuống trực tiếp giữa trình duyệt và máy chủ của bạn. Tệp không bao giờ đi qua máy chủ của Nubbo.
  • Chia sẻ tệp và thư mục với mật khẩu, thời hạn và giới hạn lượt tải xuống, nhận tệp vào bucket và tạo thư viện ảnh.
  • Khóa của bạn được lưu ở dạng mã hóa AES-256-GCM và bạn có thể ngắt kết nối bucket bất cứ lúc nào.

Trước khi bắt đầu

Bạn cần một bộ lưu trữ tương thích S3 và một tài khoản Nubbo. Mỗi bucket bạn kết nối được tính vào giới hạn gói của bạn: gói Miễn phí cho phép 2, Personal 5 và Pro không giới hạn. Endpoint phải là một URL công khai mà cả máy chủ Nubbo lẫn trình duyệt đều truy cập được, và phải dùng HTTPS, vì trình duyệt không tải nội dung HTTP từ https://nubbo.app. Nubbo từ chối các endpoint trỏ tới địa chỉ riêng hoặc cục bộ. Nếu máy chủ của bạn không có khu vực, hãy để us-east-1.

Chọn cách kết nối

Trình hướng dẫn của Nubbo có hai cách. Cả hai đều kết thúc giống nhau: bucket được kết nối và sẵn sàng để tải lên từ trình duyệt.

Tự độngVới khóa giới hạn
KhóaTruy cập toàn bộ tài khoảnGiới hạn cho một bucket
BucketNubbo dùng một bucket bạn có hoặc tạo bucket mớiBạn tạo trước
CORSNubbo thêm quy tắc giúp bạnBạn tự thêm quy tắc
Khi nào nên chọnCách nhanh nhấtKhi bạn không muốn cấp quyền truy cập toàn bộ tài khoản

Kết nối tự động

Bước 1: tạo khóa trên máy chủ của bạn

  1. Kiểm tra rằng máy chủ của bạn cung cấp API S3 với chữ ký V4 trên một URL HTTPS công khai, ví dụ https://s3.your-domain.com.
  2. Tạo một khóa có quyền tạo bucket và thay đổi CORS của chúng.
  3. Ghi lại URL endpoint và khu vực. Nếu máy chủ của bạn không có khu vực, hãy dùng us-east-1.

Bước 2: kết nối bucket trong Nubbo

  1. Trong Nubbo, mở Bucket và nhấn Kết nối bucket. Chọn S3 tùy chỉnh / Tự lưu trữ và nhấn Tiếp tục.

    Bước Nhà cung cấp của trình hướng dẫn Nubbo với S3 tùy chỉnh / Tự lưu trữ đã được chọn Bước Nhà cung cấp của trình hướng dẫn Nubbo với S3 tùy chỉnh / Tự lưu trữ đã được chọn
  2. Chọn Tự động và nhấn Tiếp tục.

    Bước Cách kết nối với hai tùy chọn Tự động và Với khóa giới hạn Bước Cách kết nối với hai tùy chọn Tự động và Với khóa giới hạn
  3. Ở bước Khóa của bạn, dán access key, secret key, URL endpoint và khu vực. Nhấn Kiểm tra khóa. Nubbo kiểm tra rằng khóa hoạt động và có quyền truy cập toàn bộ tài khoản.

    Bước Khóa của bạn cho S3 tùy chỉnh / Tự lưu trữ với hướng dẫn nhanh và các ô nhập khóa Bước Khóa của bạn cho S3 tùy chỉnh / Tự lưu trữ với hướng dẫn nhanh và các ô nhập khóa
  4. Chọn một bucket của bạn và nhấn Dùng bucket này, hoặc chọn Tạo mới, nhập tên (và chọn khu vực nếu được hỏi) rồi nhấn Tạo và chuẩn bị. Nubbo thêm vào bucket một quy tắc CORS chỉ cho phép tải lên và tải xuống từ ứng dụng, đồng thời giữ nguyên các quy tắc bucket đã có.

    Bước Bucket của bạn với danh sách bucket và tùy chọn Tạo mới Bước Bucket của bạn với danh sách bucket và tùy chọn Tạo mới
  5. Xem lại ba mục kiểm tra, đổi Tên trong Nubbo nếu muốn và nhấn Hoàn tất. Bucket sẽ xuất hiện trong mục Bucket và bạn có thể mở nó trong trình khám phá.

    Bước Xong với các mục kiểm tra kết nối, bucket và CORS Bước Xong với các mục kiểm tra kết nối, bucket và CORS

Nếu Nubbo không thể thêm quy tắc CORS bằng khóa của bạn, trình hướng dẫn sẽ đưa bạn tới bước CORS. Khi đó hãy làm theo phần Thêm quy tắc CORS.

Kết nối với khóa giới hạn

Bước 1: chuẩn bị bucket và khóa trên máy chủ của bạn

  1. Tạo bucket trên máy chủ của bạn (ví dụ trên MinIO, bằng mc mb).
  2. Tạo một khóa có quyền đọc và ghi trên bucket đó.
  3. Ghi lại URL endpoint và khu vực.

Bước 2: kết nối bucket trong Nubbo

  1. Trong Bucket, nhấn Kết nối bucket, chọn S3 tùy chỉnh / Tự lưu trữ rồi chọn Với khóa giới hạn.
  2. Dán access key, secret key, endpoint và khu vực. Nhấn Kiểm tra khóa.
  3. Nhập chính xác tên bucket và nhấn Kiểm tra quyền truy cập.
  4. Trình hướng dẫn chuyển sang bước CORS với quy tắc bạn cần thêm.

Thêm quy tắc CORS

Quy tắc CORS cho phép trình duyệt tải tệp lên và tải xuống từ bucket của bạn trên https://nubbo.app. Đây chính là quy tắc trình hướng dẫn hiển thị ở bước CORS.

Cách thiết lập CORS tùy thuộc vào phần mềm:

  • MinIO (bản community) không chấp nhận CORS theo từng bucket: nó dùng một cài đặt chung (MINIO_API_CORS_ALLOW_ORIGIN) cho phép mọi origin theo mặc định. Nếu bạn chưa thay đổi cài đặt này, bạn không cần làm gì: nhấn Đã thêm, kiểm tra và bước kiểm tra sẽ đạt. Nếu bạn đã thay đổi, hãy thêm https://nubbo.app.
  • Ceph và SeaweedFS chấp nhận CORS theo từng bucket qua API S3. Áp dụng quy tắc này bằng công cụ bạn thường dùng (ví dụ aws s3api put-bucket-cors với endpoint của bạn), hoặc để Nubbo làm việc đó theo cách tự động.
[
  {
    "AllowedHeaders": ["*"],
    "AllowedMethods": ["GET", "PUT", "POST", "DELETE", "HEAD"],
    "AllowedOrigins": ["https://nubbo.app"],
    "ExposeHeaders": ["ETag"],
    "MaxAgeSeconds": 3600
  }
]
Bước CORS với quy tắc cần thêm vào bucket Bước CORS với quy tắc cần thêm vào bucket

Khi quy tắc đã sẵn sàng, hãy quay lại Nubbo và nhấn Đã thêm, kiểm tra. Trên Ceph và SeaweedFS, nếu khóa của bạn có quyền thay đổi CORS, Thử cấu hình giúp tôi sẽ làm việc đó cho bạn.

Nếu có sự cố

Thông báo trong NubboCách xử lý
“Thông tin đăng nhập không hợp lệ. Hãy kiểm tra access key và secret access key.”Sao chép lại cả hai khóa, không có khoảng trắng ở đầu hoặc cuối.
“Khóa này có vẻ chỉ giới hạn cho một bucket. Bạn có thể tiếp tục theo cách giới hạn hoặc tạo khóa có toàn quyền truy cập.”Nhấn Tiếp tục với khóa giới hạn, hoặc tạo khóa có quyền truy cập toàn bộ tài khoản và nhấn Thử khóa khác.
“Không tìm thấy bucket. Hãy xác minh tên và khu vực.”Kiểm tra chính xác tên bucket và khu vực đã chọn có đúng là khu vực của bucket không.
“Khóa của bạn không có quyền tạo bucket.”Dùng khóa có toàn quyền truy cập, hoặc tạo bucket trong bảng điều khiển của bạn và nhấn Tôi đã tạo trong bảng điều khiển.
“Tên này đã được dùng ở nhà cung cấp này; hãy thử tên khác.”Tên bucket là duy nhất trên toàn nhà cung cấp: hãy chọn tên khác.
“Khóa của bạn không có quyền thiết lập việc này.”Thêm quy tắc CORS thủ công, như đã giải thích ở trên.
“Vẫn chưa hoạt động. Hãy xem lại quy tắc và kiểm tra lại; một số nhà cung cấp cần một phút để áp dụng.”Kiểm tra rằng origin chính xác là https://nubbo.app, không có dấu gạch chéo ở cuối, đợi một phút rồi kiểm tra lại.
“Bucket này đã được sử dụng.”Bucket đó đã được kết nối trong Nubbo, ở tài khoản của bạn hoặc một tài khoản khác.
“Không thể kết nối tới endpoint S3. Hãy xác minh URL endpoint.”Kiểm tra rằng URL là công khai, dùng HTTPS và phản hồi từ internet, chứ không chỉ từ mạng của bạn.
“URL endpoint không hợp lệ. Hãy kiểm tra định dạng.”Nhập URL đầy đủ với https:// và không kèm tên bucket. Thông báo này cũng xuất hiện khi URL trỏ tới địa chỉ riêng hoặc cục bộ, hoặc khi tên miền không phân giải được.
“Kết nối đã hết thời gian chờ. Hãy thử lại.”Kiểm tra tường lửa của máy chủ và đảm bảo cổng có thể truy cập từ bên ngoài.

Chi phí

Nếu bạn đang cân nhắc giữa bộ lưu trữ của riêng mình và một nhà cung cấp, hãy so sánh giá và giới hạn trong S3, R2, Spaces, Wasabi và Backblaze B2.

Câu hỏi thường gặp

Bộ lưu trữ tự lưu trữ nào hoạt động với Nubbo?

Mọi bộ lưu trữ tương thích API S3 với chữ ký V4, như MinIO, Ceph hoặc SeaweedFS, và cả các nhà cung cấp tương thích S3 không có trong danh sách.

Tôi có thể kết nối MinIO trong mạng nội bộ không?

Không. Endpoint phải là một URL công khai: Nubbo từ chối các địa chỉ riêng và cục bộ, và trình duyệt cũng cần truy cập được nó.

Tôi dùng khu vực nào nếu máy chủ không có khu vực?

us-east-1. Đây là khu vực mặc định của hầu hết các máy chủ tương thích S3.

Tại sao Nubbo không thể đặt CORS trên MinIO?

Vì bản community của MinIO không hỗ trợ CORS theo từng bucket. Nó dùng một cài đặt chung cho phép mọi origin theo mặc định, và Nubbo sẽ kiểm tra cài đặt đó.

Nguồn

Giá và giới hạn lấy từ các trang chính thức bên dưới. Nhà cung cấp có thể thay đổi chúng, nên hãy kiểm tra trước khi quyết định.