@itwin/object-storage-s3
Version:
Object storage implementation base for S3 compatible providers
48 lines • 3.15 kB
TypeScript
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