Skip to main content
Object Storage Blueprint gửi một usage event đến Dodo Payments mỗi khi khách hàng tải lên một tệp, kèm theo số byte đã tải lên. Một meter Sum trên bytes cộng tổng khối lượng tải lên của từng khách hàng để bạn có thể tính phí. Blueprint được cung cấp trong package npm @dodopayments/ingestion-blueprints dưới dạng trackObjectStorage() và hoạt động với S3, Google Cloud Storage, Azure Blob Storage cùng các dịch vụ object storage khác.

Trường hợp sử dụng

Object Storage Blueprint phù hợp với các trường hợp sau:

File Hosting

Tính phí khách hàng dựa trên tổng dung lượng các tệp họ tải lên.

Backup Services

Theo dõi việc tải dữ liệu sao lưu lên và tính phí dựa trên lượng dữ liệu đã tải lên.

Media CDN

Theo dõi việc tải media lên và tính phí dựa trên khối lượng tải lên. Để tính phí băng thông phân phối, hãy sử dụng Stream Blueprint.

Document Management

Theo dõi các tài liệu khách hàng tải lên để áp dụng hình thức tính phí dựa trên mức sử dụng.
Sử dụng blueprint này để tính phí theo khối lượng tải lên cho các dịch vụ lưu trữ tệp, media CDN và sao lưu. Blueprint đếm số byte đã tải lên, không phải số byte được lưu trữ theo thời gian.

Bắt đầu nhanh

Để theo dõi các lượt tải lên, hãy cài đặt package, tạo một meter và gửi một event sau mỗi lượt tải lên thành công.
1

Install the SDK

Cài đặt package Dodo Payments Ingestion Blueprints:
2

Get Your API Keys

Bạn cần hai bộ thông tin xác thực:
  • Dodo Payments API key: Tạo một key trong Developer → API Keys trên Dodo Payments dashboard, rồi lưu key vào DODO_PAYMENTS_API_KEY. Sử dụng test mode key trong quá trình xây dựng. Test mode key chỉ hoạt động với test_mode.
  • Thông tin xác thực của nhà cung cấp dịch vụ lưu trữ: Thông tin xác thực mà storage SDK sử dụng cho AWS S3, Google Cloud Storage, Azure Blob Storage hoặc một nhà cung cấp khác.
3

Create a Meter

Trong Dodo Payments dashboard, hãy đi đến Products → Meters và nhấp vào Create Meter. Thiết lập các field sau:
  • Meter Name: tên mô tả, chẳng hạn như Storage Uploads.
  • Event Name: object_storage_upload hoặc tên do bạn chọn. Tên này phải khớp chính xác với eventName trong code của bạn (phân biệt chữ hoa chữ thường).
  • Aggregation Type: Sum, để cộng tổng số byte đã tải lên.
  • Over Property: bytes, để tính phí dựa trên kích thước tải lên.
  • Measurement Unit: đơn vị hiển thị trên invoice, chẳng hạn như bytes.
4

Track Storage Usage

Gửi event sau khi lệnh gọi đến storage thành công. Trong các ví dụ này, một lượt tải lên không thành công sẽ throw trước khi trackObjectStorage() chạy, nên lượt tải lên đó không bị tính phí.

Cấu hình

Cấu hình ingestion

Truyền các tùy chọn sau vào new Ingestion():
string
bắt buộc
Dodo Payments API key của bạn lấy từ dashboard.
string
Chế độ môi trường: test_mode hoặc live_mode. Mặc định là test_mode. Tuy nhiên, Dodo Payments SDK mặc định sử dụng live_mode, vì vậy hãy thiết lập rõ ràng live_mode trong production.
string
bắt buộc
Tên event khớp với Event Name của meter (phân biệt chữ hoa chữ thường).

Tùy chọn theo dõi Object Storage

Truyền các tùy chọn sau vào trackObjectStorage():
string
bắt buộc
Dodo Payments customer ID sẽ được tính phí cho lượt tải lên, chẳng hạn như cus_123.
number
Số byte đã tải lên. Bắt buộc khi tính phí dựa trên byte. Nếu bỏ qua, event sẽ không có giá trị bytes, nhưng vẫn được tính vào meter Count.
object
Metadata tùy chọn về lượt tải lên, chẳng hạn như tên bucket hoặc loại nội dung. Mỗi giá trị phải là một string, number hoặc boolean.

Phương pháp hay nhất

Theo dõi trước hoặc sau khi tải lên: Bạn có thể theo dõi event trước hoặc sau lượt tải lên thực tế, tùy thuộc vào chiến lược xử lý lỗi của bạn.
API không có endpoint để xóa một event đã được ingest. Event được gửi trước một lượt tải lên nhưng lượt tải lên đó thất bại vẫn được giữ trong usage của khách hàng.
Xử lý lỗi tải lên: Chỉ theo dõi các lượt tải lên thành công để không tính phí cho những thao tác thất bại.
Lần sửa đổi cuối 26 tháng 9, 2026