@nurbxfit/cloudflare-r2
Version:
Simple nodejs client SDK for cloudflare r2
23 lines (22 loc) • 1.56 kB
TypeScript
import { IHTTPClient } from "../types/IHTTPClient";
import { CreateBucketBody } from "../types/rawRequestParams";
import { CreateBucketResponse, DeleteBucketResponse, DeleteObjectResponse, GetBucketCustomDomainResponse, GetBucketObjectResponse, GetBucketObjectsResponse, GetBucketResponse, ListBucketResponse, UploadObjectResponse } from "../types/rawResponse";
export default class CloudflareR2Client {
private httpClient;
private endpoint;
private accountId;
private token;
constructor(httpClient: IHTTPClient, endpoint: string, accountId: string, token: string);
private getHeaders;
getBucketAsync(bucketName: string): Promise<GetBucketResponse>;
listBucketsAsync(): Promise<ListBucketResponse>;
createBucketAsync(bucketOptions: CreateBucketBody): Promise<CreateBucketResponse>;
deleteBucketAsync(bucketName: string): Promise<DeleteBucketResponse>;
getBucketCustomDomains(bucketName: string): Promise<GetBucketCustomDomainResponse>;
getBucketObjects(bucketName: string): Promise<GetBucketObjectsResponse>;
searchBucketObjects(bucketName: string, objectKey: string): Promise<GetBucketObjectsResponse>;
getBucketObject(bucketName: string, objectKey: string): Promise<GetBucketObjectResponse>;
putBucketObject(bucketName: string, objectKey: string, objectBin: BinaryData, contentType?: string): Promise<UploadObjectResponse>;
deleteBucketObject(bucketName: string, objectKey: string): Promise<DeleteObjectResponse>;
deleteBucketObjects(bucketName: string, objectKeys: string[]): Promise<any>;
}