bytes 的 Sum meter 会汇总每位客户的上传量,以便您据此计费。该 blueprint 包含在 @dodopayments/ingestion-blueprints npm package 中,名称为 trackObjectStorage(),并且支持 S3、Google Cloud Storage、Azure Blob Storage 及其他对象存储服务。
使用场景
Object Storage Blueprint 适用于以下场景:File Hosting
Backup Services
Media CDN
Document Management
您可以使用它为文件托管、媒体 CDN 和备份服务按上传量计费。该 blueprint 统计的是上传的字节数,而不是一段时间内存储的字节数。
快速开始
要跟踪上传,请安装 package、创建 meter,并在每次成功上传后发送 event。1
Install the SDK
安装 Dodo Payments Ingestion Blueprints package:
2
Get Your API Keys
您需要两组 credentials:
- Dodo Payments API key:在 Dodo Payments dashboard 中进入 Developer → API Keys 创建,并将其存储在
DODO_PAYMENTS_API_KEY中。构建期间请使用 test mode key。test mode key 只能与test_mode搭配使用。 - Storage provider credentials:您的 storage SDK 使用的 credentials,例如 AWS S3、Google Cloud Storage、Azure Blob Storage 或其他 provider 的 credentials。
3
Create a Meter
在 Dodo Payments dashboard 中,进入 Products → Meters,然后点击 Create Meter。设置以下字段:
- Meter Name:描述性名称,例如
Storage Uploads。 - Event Name:
object_storage_upload,或您选择的名称。它必须与代码中的eventName完全匹配(区分大小写)。 - Aggregation Type:选择 Sum,以汇总上传的字节数。
- Over Property:
bytes,以便按上传大小计费。 - Measurement Unit:发票上显示的单位,例如
bytes。
4
Track Storage Usage
在 storage call 成功后发送 event。在这些示例中,失败的上传会在
trackObjectStorage() 运行前抛出异常,因此不会计费。配置
Ingestion 配置
将以下 options 传递给new Ingestion():
string
必填
您在 dashboard 中获取的 Dodo Payments API key。
string
Environment mode:
test_mode 或 live_mode。默认值为 test_mode。不过,Dodo Payments SDKs 默认使用 live_mode,因此请在 production 中显式设置 live_mode。string
必填
与 meter 的 Event Name 匹配的 event name(区分大小写)。
跟踪 Object Storage 选项
将以下 options 传递给trackObjectStorage():
string
必填
用于为此次上传计费的 Dodo Payments customer ID,例如
cus_123。number
上传的字节数。基于字节计费时必须提供。如果省略此项,event 将没有
bytes value,但仍会计入 Count meter。object
关于上传的可选 metadata,例如 bucket name 或 content type。每个 value 必须是 string、number 或 boolean。