bytes에 대한 Sum meter가 각 고객의 업로드 용량을 합산하므로 이에 따라 요금을 청구할 수 있습니다. 이 blueprint는 @dodopayments/ingestion-blueprints npm package에 trackObjectStorage()로 제공되며, S3, Google Cloud Storage, Azure Blob Storage 및 기타 object storage 서비스와 함께 사용할 수 있습니다.
사용 사례
Object Storage Blueprint는 다음 시나리오에 적합합니다:File Hosting
고객이 업로드한 파일의 총 용량에 따라 요금을 청구합니다.
Backup Services
백업 데이터 업로드를 추적하고 업로드된 데이터 양에 따라 요금을 청구합니다.
Media CDN
미디어 업로드를 모니터링하고 업로드 용량에 따라 요금을 청구합니다. 전송 bandwidth에 따라 요금을 청구하려면 Stream Blueprint를 사용하세요.
Document Management
usage-based pricing을 위해 고객별 문서 업로드를 추적합니다.
파일 hosting, media CDN 및 백업 서비스의 업로드 용량에 따라 요금을 청구하는 데 사용하세요. 이 blueprint는 저장된 바이트가 시간에 따라 얼마나 늘어났는지가 아니라 업로드된 바이트를 계산합니다.
빠른 시작
업로드를 추적하려면 package를 설치하고 meter를 생성한 다음, 업로드가 성공할 때마다 event를 전송하세요.1
Install the SDK
Dodo Payments Ingestion Blueprints package를 설치합니다:
2
Get Your API Keys
두 세트의 credential이 필요합니다:
- 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: AWS S3, Google Cloud Storage, Azure Blob Storage 또는 다른 provider에서 storage SDK가 사용하는 credential입니다.
3
Create a Meter
Dodo Payments dashboard에서 Products → Meters로 이동한 다음 Create Meter를 클릭합니다. 다음 field를 설정합니다:
- 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()가 실행되기 전에 업로드 실패가 throw되므로 요금이 청구되지 않습니다.Configuration
Ingestion Configuration
다음 option을new Ingestion()에 전달합니다:
string
필수
대시보드에서 발급한 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입니다(대소문자 구분).
Track Object Storage Options
다음 option을trackObjectStorage()에 전달합니다:
string
필수
업로드 요금을 청구할 Dodo Payments customer ID로, 예를 들어
cus_123입니다.number
업로드된 바이트 수입니다. 바이트 기반 청구에 필요합니다. 생략하면 event에
bytes 값이 없지만 Count meter에는 계속 집계됩니다.object
bucket name 또는 content type과 같은 업로드 관련 선택적 metadata입니다. 각 값은 string, number 또는 boolean이어야 합니다.