メインコンテンツへスキップ

ユースケース

オブジェクトストレージブループリントがサポートする一般的なシナリオを探ります:

File Hosting

総ストレージ使用量とアップロード量に基づいて顧客に請求します。

Backup Services

バックアップデータのアップロードを追跡し、保存されたGB単位で課金します。

Media CDN

メディアのアップロードを監視し、ストレージと帯域幅に応じて請求します。

Document Management

顧客ごとのドキュメントアップロードを追跡し、使用量ベースの課金を行います。
ストレージのアップロード、ファイルホスティング、CDN利用、バックアップサービスなどの課金に最適です。

クイックスタート

消費されたバイトでオブジェクトストレージのアップロードを追跡します:
1

Install the SDK

npm install @dodopayments/ingestion-blueprints
2

Get Your API Keys

  • Dodo Payments API Key: Dodo Payments Dashboardから取得します
  • Storage Provider API Key: AWS S3、Google Cloud Storage、Azureなどから取得します
3

Create a Meter

Buy the meter in your Dodo Payments Dashboard:
  • Event Name: object_storage_upload(またはお好みの名前)
  • Aggregation Type: sum でアップロードされた総バイト数を追跡
  • Over Property: bytes でストレージサイズに基づいて請求
4

Track Storage Usage

import { Ingestion, trackObjectStorage } from '@dodopayments/ingestion-blueprints';
import { S3Client, PutObjectCommand } from '@aws-sdk/client-s3';
import fs from 'fs';

const ingestion = new Ingestion({
  apiKey: process.env.DODO_PAYMENTS_API_KEY,
  environment: 'test_mode',
  eventName: 'object_storage_upload'
});

const s3 = new S3Client({ region: 'us-east-1' });

// Read the file (example: from disk or request)
const fileBuffer = fs.readFileSync('./document.pdf');

// Upload to S3
const command = new PutObjectCommand({
  Bucket: 'my-bucket',
  Key: 'uploads/document.pdf',
  Body: fileBuffer
});

await s3.send(command);

// Track the upload
await trackObjectStorage(ingestion, {
  customerId: 'customer_123',
  bytes: fileBuffer.length
});

設定

取り込み設定

apiKey
string
必須
Dodo Paymentsダッシュボードから取得したAPIキー。
environment
string
必須
環境モード:test_mode または live_mode
eventName
string
必須
メーター構成に一致するイベント名。

オブジェクトストレージの追跡オプション

customerId
string
必須
課金の帰属先となる顧客ID。
bytes
number
アップロードされたバイト数。バイト単位の課金には必須です。
metadata
object
バケット名、コンテンツタイプなどのアップロードに関する任意のメタデータ。

ベストプラクティス

アップロード前後の追跡:エラーハンドリング戦略に応じて、実際のアップロードの前または後にイベントを追跡できます。
アップロードの失敗への対応:失敗した操作に対して課金されないように、成功したアップロードのみを追跡してください。