@apicity/b2
v0.7.3
Published
Backblaze B2 S3-compatible object storage provider.
Maintainers
Readme
@apicity/b2
Backblaze B2 S3-compatible object storage provider.
Runtime dependencies:
zod@^4.4.3— request schemas attached to every POST endpoint as.schema
Installation
npm install @apicity/b2
# or
pnpm add @apicity/b2Quick Start
import { createB2 } from "@apicity/b2";
const b2 = createB2({
accessKeyId: process.env.B2_ACCESS_KEY_ID!,
secretAccessKey: process.env.B2_SECRET_ACCESS_KEY!,
region: process.env.B2_REGION!,
endpoint: process.env.B2_ENDPOINT,
});@apicity/b2 bundles its S3-compatible signing, transport, response parsing, and schemas locally while exposing only Backblaze-supported calls.
API Reference
39 endpoints across 2 groups. Each method mirrors an upstream URL path.
buckets
PUT https://s3.us-west-004.backblazeb2.com/{bucket}
Cost tier: cheap
const res = await b2.buckets.create({ /* ... */ });Source: packages/provider/b2/src/b2.ts
DELETE https://s3.us-west-004.backblazeb2.com/{bucket}
Cost tier: cheap
const res = await b2.buckets.del({ /* ... */ });Source: packages/provider/b2/src/b2.ts
DELETE https://s3.us-west-004.backblazeb2.com/{bucket}?cors
Cost tier: cheap
const res = await b2.buckets.delCors({ /* ... */ });Source: packages/provider/b2/src/b2.ts
DELETE https://s3.us-west-004.backblazeb2.com/{bucket}?encryption
Cost tier: cheap
const res = await b2.buckets.delEncryption({ /* ... */ });Source: packages/provider/b2/src/b2.ts
GET https://s3.us-west-004.backblazeb2.com/{bucket}?acl
Cost tier: cheap
const res = await b2.buckets.getAcl({ /* ... */ });Source: packages/provider/b2/src/b2.ts
GET https://s3.us-west-004.backblazeb2.com/{bucket}?cors
Cost tier: cheap
const res = await b2.buckets.getCors({ /* ... */ });Source: packages/provider/b2/src/b2.ts
GET https://s3.us-west-004.backblazeb2.com/{bucket}?encryption
Cost tier: cheap
const res = await b2.buckets.getEncryption({ /* ... */ });Source: packages/provider/b2/src/b2.ts
GET https://s3.us-west-004.backblazeb2.com/{bucket}?object-lock
Cost tier: cheap
const res = await b2.buckets.getObjectLockConfiguration({ /* ... */ });Source: packages/provider/b2/src/b2.ts
GET https://s3.us-west-004.backblazeb2.com/{bucket}?versioning
Cost tier: cheap
const res = await b2.buckets.getVersioning({ /* ... */ });Source: packages/provider/b2/src/b2.ts
HEAD https://s3.us-west-004.backblazeb2.com/{bucket}
Cost tier: cheap
const res = await b2.buckets.head({ /* ... */ });Source: packages/provider/b2/src/b2.ts
GET https://s3.us-west-004.backblazeb2.com/
Cost tier: cheap
const res = await b2.buckets.list({ /* ... */ });Source: packages/provider/b2/src/b2.ts
GET https://s3.us-west-004.backblazeb2.com/{bucket}?location
Cost tier: cheap
const res = await b2.buckets.location({ /* ... */ });Source: packages/provider/b2/src/b2.ts
PUT https://s3.us-west-004.backblazeb2.com/{bucket}?acl
Cost tier: cheap
const res = await b2.buckets.putAcl({ /* ... */ });Source: packages/provider/b2/src/b2.ts
PUT https://s3.us-west-004.backblazeb2.com/{bucket}?cors
Cost tier: cheap
const res = await b2.buckets.putCors({ /* ... */ });Source: packages/provider/b2/src/b2.ts
PUT https://s3.us-west-004.backblazeb2.com/{bucket}?encryption
Cost tier: cheap
const res = await b2.buckets.putEncryption({ /* ... */ });Source: packages/provider/b2/src/b2.ts
PUT https://s3.us-west-004.backblazeb2.com/{bucket}?object-lock
Cost tier: cheap
const res = await b2.buckets.putObjectLockConfiguration({ /* ... */ });Source: packages/provider/b2/src/b2.ts
objects
DELETE https://s3.us-west-004.backblazeb2.com/{bucket}/{key}{query}
Cost tier: cheap
const res = await b2.objects.abortMultipartUpload({ /* ... */ });Source: packages/provider/b2/src/b2.ts
POST https://s3.us-west-004.backblazeb2.com/{bucket}/{key}{query}
Cost tier: cheap
const res = await b2.objects.completeMultipartUpload({ /* ... */ });Source: packages/provider/b2/src/b2.ts
PUT https://s3.us-west-004.backblazeb2.com/{bucket}/{key}
Cost tier: cheap
const res = await b2.objects.copy({ /* ... */ });Source: packages/provider/b2/src/b2.ts
POST https://s3.us-west-004.backblazeb2.com/{bucket}/{key}?uploads
Cost tier: cheap
const res = await b2.objects.createMultipartUpload({ /* ... */ });Source: packages/provider/b2/src/b2.ts
DELETE https://s3.us-west-004.backblazeb2.com/{bucket}/{key}{query}
Cost tier: cheap
const res = await b2.objects.del({ /* ... */ });Source: packages/provider/b2/src/b2.ts
POST https://s3.us-west-004.backblazeb2.com/{bucket}?delete
Cost tier: cheap
const res = await b2.objects.delMany({ /* ... */ });Source: packages/provider/b2/src/b2.ts
GET https://s3.us-west-004.backblazeb2.com/{bucket}/{key}{query}
Cost tier: cheap
const res = await b2.objects.get({ /* ... */ });Source: packages/provider/b2/src/b2.ts
GET https://s3.us-west-004.backblazeb2.com/{bucket}/{key}?acl{query}
Cost tier: cheap
const res = await b2.objects.getAcl({ /* ... */ });Source: packages/provider/b2/src/b2.ts
GET https://s3.us-west-004.backblazeb2.com/{bucket}/{key}?legal-hold{query}
Cost tier: cheap
const res = await b2.objects.getLegalHold({ /* ... */ });Source: packages/provider/b2/src/b2.ts
GET https://s3.us-west-004.backblazeb2.com/{bucket}/{key}?retention{query}
Cost tier: cheap
const res = await b2.objects.getRetention({ /* ... */ });Source: packages/provider/b2/src/b2.ts
GET https://s3.us-west-004.backblazeb2.com/{bucket}/{key}{query}
Cost tier: cheap
const res = await b2.objects.getStream({ /* ... */ });Source: packages/provider/b2/src/b2.ts
HEAD https://s3.us-west-004.backblazeb2.com/{bucket}/{key}{query}
Cost tier: cheap
const res = await b2.objects.head({ /* ... */ });Source: packages/provider/b2/src/b2.ts
GET https://s3.us-west-004.backblazeb2.com/{bucket}?list-type=2{query}
Cost tier: cheap
const res = await b2.objects.list({ /* ... */ });Source: packages/provider/b2/src/b2.ts
GET https://s3.us-west-004.backblazeb2.com/{bucket}{query}
Cost tier: cheap
const res = await b2.objects.listLegacy({ /* ... */ });Source: packages/provider/b2/src/b2.ts
GET https://s3.us-west-004.backblazeb2.com/{bucket}?uploads{query}
Cost tier: cheap
const res = await b2.objects.listMultipartUploads({ /* ... */ });Source: packages/provider/b2/src/b2.ts
GET https://s3.us-west-004.backblazeb2.com/{bucket}/{key}{query}
Cost tier: cheap
const res = await b2.objects.listParts({ /* ... */ });Source: packages/provider/b2/src/b2.ts
GET https://s3.us-west-004.backblazeb2.com/{bucket}?versions{query}
Cost tier: cheap
const res = await b2.objects.listVersions({ /* ... */ });Source: packages/provider/b2/src/b2.ts
PUT https://s3.us-west-004.backblazeb2.com/{bucket}/{key}
Cost tier: cheap
const res = await b2.objects.put({ /* ... */ });Source: packages/provider/b2/src/b2.ts
PUT https://s3.us-west-004.backblazeb2.com/{bucket}/{key}?acl{query}
Cost tier: cheap
const res = await b2.objects.putAcl({ /* ... */ });Source: packages/provider/b2/src/b2.ts
PUT https://s3.us-west-004.backblazeb2.com/{bucket}/{key}?legal-hold{query}
Cost tier: cheap
const res = await b2.objects.putLegalHold({ /* ... */ });Source: packages/provider/b2/src/b2.ts
PUT https://s3.us-west-004.backblazeb2.com/{bucket}/{key}?retention{query}
Cost tier: cheap
const res = await b2.objects.putRetention({ /* ... */ });Source: packages/provider/b2/src/b2.ts
PUT https://s3.us-west-004.backblazeb2.com/{bucket}/{key}{query}
Cost tier: cheap
const res = await b2.objects.uploadPart({ /* ... */ });Source: packages/provider/b2/src/b2.ts
PUT https://s3.us-west-004.backblazeb2.com/{bucket}/{key}{query}
Cost tier: cheap
const res = await b2.objects.uploadPartCopy({ /* ... */ });Source: packages/provider/b2/src/b2.ts
Part of the apicity monorepo.
License
MIT — see LICENSE.
