UNPKG

@itwin/object-storage-s3

Version:

Object storage implementation base for S3 compatible providers

48 lines 3.15 kB
import { Readable } from "stream"; import { BaseDirectory, ContentHeaders, ExpiryOptions, Metadata, MultipartUploadData, MultipartUploadOptions, ObjectDirectory, ObjectProperties, ObjectReference, PresignedUrlProvider, ServerStorage, TransferConfig, TransferConfigProvider, TransferData, EntityPageListIterator } from "@itwin/object-storage-core"; import { S3ClientWrapper } from "./wrappers"; export interface S3ServerStorageConfig { baseUrl: string; region: string; bucket: string; accessKey: string; secretKey: string; roleArn: string; stsBaseUrl: string; } export declare class S3ServerStorage extends ServerStorage { private readonly _presignedUrlProvider; private readonly _transferConfigProvider; protected readonly _s3Client: S3ClientWrapper; constructor(s3Client: S3ClientWrapper, presignedUrlProvider: PresignedUrlProvider, transferConfigProvider: TransferConfigProvider); download(reference: ObjectReference, transferType: "buffer"): Promise<Buffer>; download(reference: ObjectReference, transferType: "stream"): Promise<Readable>; download(reference: ObjectReference, transferType: "local", localPath?: string): Promise<string>; upload(reference: ObjectReference, data: TransferData, metadata?: Metadata, headers?: ContentHeaders): Promise<void>; uploadInMultipleParts(reference: ObjectReference, data: MultipartUploadData, options?: MultipartUploadOptions, headers?: ContentHeaders): Promise<void>; createBaseDirectory(directory: BaseDirectory): Promise<void>; getListDirectoriesPagedIterator(maxPageSize?: number): EntityPageListIterator<BaseDirectory>; getListObjectsPagedIterator(directory: BaseDirectory, maxPageSize?: number): EntityPageListIterator<ObjectReference>; /** Max 1000 objects * @deprecated Use listObjects method instead. */ list(directory: BaseDirectory): Promise<ObjectReference[]>; deleteBaseDirectory(directory: BaseDirectory): Promise<void>; deleteObject(reference: ObjectReference): Promise<void>; baseDirectoryExists(directory: BaseDirectory): Promise<boolean>; objectExists(reference: ObjectReference): Promise<boolean>; updateMetadata(reference: ObjectReference, metadata: Metadata): Promise<void>; getObjectProperties(reference: ObjectReference): Promise<ObjectProperties>; getDownloadUrl(reference: ObjectReference, options?: ExpiryOptions): Promise<string>; getUploadUrl(reference: ObjectReference, options?: ExpiryOptions): Promise<string>; getDownloadConfig(directory: ObjectDirectory, options?: ExpiryOptions): Promise<TransferConfig>; getUploadConfig(directory: ObjectDirectory, options?: ExpiryOptions): Promise<TransferConfig>; getDirectoryAccessConfig(directory: ObjectDirectory, options?: ExpiryOptions): Promise<TransferConfig>; /** * Copying from a different region is only available on AWS. */ copyObject(sourceStorage: ServerStorage, sourceReference: ObjectReference, targetReference: ObjectReference): Promise<void>; get bucketName(): string; releaseResources(): Promise<void>; } //# sourceMappingURL=S3ServerStorage.d.ts.map