/// /// import { Stream } from 'stream'; import { AbstractCloudService, CloudService, RawCloudService } from './cloud-protocol'; export declare const ObjectStorageService: unique symbol; export declare const OBJECT_STORAGE_NAME = "objectStorage"; export declare type Body = Buffer | string | Stream; export interface Owner { id?: string; displayName?: string; } export interface Bucket { name: string; creationDate: Date; } export interface Object { etag?: string; key: string; lastModified?: Date; Owner?: Owner; size: number; storageClass: string; } export interface ListAllMyBucketsResult { owner?: Owner; buckets: Bucket[]; } export interface ListObjectsRequest { bucket: string; continuationToken?: string; delimiter?: string; encodingType?: string; fetchOwner?: string; maxKeys: number; prefix?: string; startAfter?: string; requestPayer?: string; expectedBucketOwner?: string; } export interface ListObjectsResult { commonPrefixes?: { prefix: string; }[]; contents: Object[]; continuationToken?: string; delimiter?: string; encodingType?: string; isTruncated: boolean; keyCount: number; maxKeys: number; name: string; nextContinuationToken?: string; prefix?: string; startAfter?: string; } export interface GetObjectRequest { bucket: string; key: string; range?: string; } export interface CreateBucketRequest { bucket: string; } export interface CreateBucketResult { location?: string; } export interface PutObjectRequest { bucket: string; key: string; body: Body; cacheControl?: string; contentDisposition?: string; contentEncoding?: string; contentLength?: number; contentType?: string; expires?: Date; } export interface CopyObjectRequest { bucket: string; key: string; copySource: string; } export interface DeleteObjectRequest { bucket: string; key: string; mfa?: string; requestPayer?: string; bypassGovernanceRetention?: string; expectedBucketOwner?: string; } export interface DeleteBucketRequest { bucket: string; expectedBucketOwner?: string; } export interface HeadObjectResult { cacheControl?: string; contentDisposition?: string; contentEncoding?: string; contentLength?: number; contentType?: string; expires?: Date; } export interface ObjectStorageService extends CloudService { createBucket(request: CreateBucketRequest): Promise; deleteBucket(request: DeleteBucketRequest): Promise; listBuckets(): Promise; listObjects(request: ListObjectsRequest): Promise; getObject(request: GetObjectRequest): Promise; getStream(request: GetObjectRequest): Promise; putObject(request: PutObjectRequest): Promise; copyObject(request: CopyObjectRequest): Promise; deleteObject(request: DeleteObjectRequest): Promise; headObject(request: GetObjectRequest): Promise; } export declare abstract class AbstractObjectStorageService extends AbstractCloudService implements ObjectStorageService { name: string; abstract createBucket(request: CreateBucketRequest): Promise; abstract deleteBucket(request: DeleteBucketRequest): Promise; abstract listBuckets(): Promise; abstract listObjects(request: ListObjectsRequest): Promise; abstract getObject(request: GetObjectRequest): Promise; abstract getStream(request: GetObjectRequest): Promise; abstract putObject(request: PutObjectRequest): Promise; abstract copyObject(request: CopyObjectRequest): Promise; abstract deleteObject(request: DeleteObjectRequest): Promise; abstract headObject(request: GetObjectRequest): Promise; } //# sourceMappingURL=object-storage-protocol.d.ts.map