Hướng dẫn

Trình quản lý tệp cho Cloudflare R2: kết nối với Nubbo

Cách kết nối bucket Cloudflare R2 với Nubbo: API token, Account ID, từng bước của trình hướng dẫn, quy tắc CORS và cách xử lý khi có lỗi.

Nubbo kết nối với Cloudflare R2 bằng một API token của R2 và Account ID của tài khoản. Chỉ trong vài phút, các bucket của bạn sẽ nằm trong một trình khám phá tệp có tải lên trực tiếp, liên kết chia sẻ và thư viện ảnh. 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 của bạn và Cloudflare R2. 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 tài khoản Cloudflare R2 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. Trước bucket đầu tiên, Cloudflare yêu cầu bạn kích hoạt gói đăng ký R2 từ dashboard. Nếu bucket của bạn có khu vực pháp lý (EU, FedRAMP hoặc US), bạn chọn nó trong trình hướng dẫn và Nubbo dùng endpoint của khu vực pháp lý đó.

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

Khóa giới hạn là quyền truy cập tối thiểu Nubbo cần: Object Read & Write trên một bucket. Với khóa này Nubbo không thể liệt kê bucket hay tạo bucket mới, nên bạn nhập tên bucket và tự thêm quy tắc CORS.

Kết nối tự động

Bước 1: tạo khóa trong Cloudflare R2

  1. Đăng nhập dash.cloudflare.com và mở R2 object storage. Bảng điều khiển có thể hiển thị menu bằng ngôn ngữ của bạn.
  2. Mở API Tokens và nhấn Create Account API token. Bạn cũng có thể vào từ Overview, trong Account Details, Manage.
  3. Chọn quyền Admin Read & Write và tạo token.
  4. Sao chép Access Key ID và Secret Access Key. Cloudflare chỉ hiển thị secret một lần. Hãy dùng hai khóa này, không phải giá trị của token.
  5. Sao chép cả Account ID, hiển thị trên trang Overview của R2.

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 Cloudflare R2 và nhấn Tiếp tục.

    Bước Nhà cung cấp của trình hướng dẫn Nubbo với Cloudflare R2 đã được chọn Bước Nhà cung cấp của trình hướng dẫn Nubbo với Cloudflare R2 đã đượ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 ID, Secret Access Key và Account ID. Nubbo tạo endpoint của tài khoản từ Account ID. Khu vực của R2 luôn là auto. Trước khi nhấn Kiểm tra khóa, hãy chọn Khu vực pháp lý của bucket: Mặc định (không có khu vực pháp lý) cho hầu hết bucket, hoặc EU, FedRAMP hay US. Endpoint thay đổi theo đó (https://<ACCOUNT_ID>.eu.r2.cloudflarestorage.com cho EU) và danh sách chỉ hiển thị bucket thuộc khu vực pháp lý đó. 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 Cloudflare R2 với hướng dẫn nhanh và các ô nhập khóa Bước Khóa của bạn cho Cloudflare R2 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 trong Cloudflare R2

  1. Trong R2, Overview, nhấn Create bucket và đặt tên (chữ thường, số và dấu gạch nối). Không có khu vực nào để chọn. Nếu dữ liệu phải ở lại EU, hãy chọn khu vực pháp lý EU: endpoint thay đổi theo đó.
  2. Mở API Tokens và nhấn Create Account API token.
  3. Chọn quyền Object Read & Write và giới hạn cho bucket của bạn.
  4. Sao chép Access Key ID, Secret Access Key và Account ID của bạn.

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

  1. Trong Bucket, nhấn Kết nối bucket, chọn Cloudflare R2 rồi chọn Với khóa giới hạn.
  2. Dán Access Key ID, Secret Access Key và Account ID. Trước khi nhấn Kiểm tra khóa, hãy chọn cùng Khu vực pháp lý với bucket. 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.

  1. Trong R2, mở bucket và vào Settings.
  2. Trong CORS Policy, nhấn Add CORS policy và chọn tab JSON.
  3. Dán quy tắc và nhấn Save. Cloudflare có thể mất tới 30 giây để áp dụ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

Sau khi lưu, hãy quay lại Nubbo và nhấn Đã thêm, kiểm tra. 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ý
“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ó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.
“Thông tin đăng nhập không hợp lệ. Hãy kiểm tra access key và secret access key.”Kiểm tra rằng bạn đã dán Access Key ID và Secret Access Key của token, không phải giá trị API token của Cloudflare.
“Không tìm thấy bucket. Hãy xác minh tên và khu vực.”Kiểm tra tên và xem khu vực pháp lý trong Nubbo có trùng với của bucket không (R2 hiển thị trong Settings của bucket).

Chi phí

R2 không tính phí egress và có hạn mức miễn phí hàng tháng. Chúng tôi giải thích trong Hạn mức miễn phí của Cloudflare R2.

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

Tôi tìm Account ID của Cloudflare ở đâu?

Trên trang Overview của R2, trong Account Details. Đó là một chuỗi 32 ký tự gồm chữ số và các chữ cái từ a đến f.

Token R2 cần quyền gì?

Quyền truy cập tối thiểu Nubbo cần là Object Read & Write giới hạn ở bucket của bạn, với cách kết nối bằng khóa giới hạn: bạn nhập tên bucket và tự thêm quy tắc CORS. Cách tự động cần Admin Read & Write, để Nubbo liệt kê bucket, tạo bucket mới và thiết lập CORS cho nó.

Tôi dùng khu vực nào với R2?

Không cần: R2 dùng khu vực auto và Nubbo đặt giúp bạn. Location hint của Cloudflare không thay đổi cách bucket kết nối.

Tôi có thể kết nối bucket R2 có khu vực pháp lý, như EU, không?

Có. Ở bước Khóa của bạn, chọn khu vực pháp lý của bucket (EU, FedRAMP hoặc US). Mỗi khu vực có endpoint riêng, ví dụ https://<ACCOUNT_ID>.eu.r2.cloudflarestorage.com, và chỉ hiển thị các bucket được tạo trong đó.

Tải xuống từ Nubbo có tốn phí egress trên R2 không?

Không. R2 không tính phí truyền dữ liệu ra ngoài. Tuy nhiên, lượt tải xuống vẫn được tính là thao tác đọc.

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.