UNPKG

@bitblit/ratchet-aws

Version:

Common tools for use with AWS browser and node

26 lines (25 loc) 2.37 kB
import { Readable } from 'stream'; import { CompleteMultipartUploadCommandOutput, CopyObjectCommandOutput, DeleteObjectCommandOutput, GetObjectCommandInput, GetObjectCommandOutput, HeadObjectCommandOutput, PutObjectCommandInput, S3Client } from '@aws-sdk/client-s3'; export interface S3CacheRatchetLike { getDefaultBucket(): string; getS3Client(): S3Client; fileExists(key: string, bucket?: string): Promise<boolean>; fetchCacheFilePassThru(req: GetObjectCommandInput): Promise<GetObjectCommandOutput>; fetchCacheFileAsS3GetObjectCommandOutput(key: string, bucket?: string): Promise<GetObjectCommandOutput>; fetchCacheFileAsReadableStream(key: string, bucket?: string): Promise<ReadableStream>; fetchCacheFileAsBuffer(key: string, bucket?: string): Promise<Buffer>; fetchCacheFileAsString(key: string, bucket?: string): Promise<string>; fetchCacheFileAsObject<T>(key: string, bucket?: string): Promise<T>; removeCacheFile(key: string, bucket?: string): Promise<DeleteObjectCommandOutput>; writeObjectToCacheFile(key: string, dataObject: any, template?: PutObjectCommandInput, bucket?: string): Promise<CompleteMultipartUploadCommandOutput>; writeStringToCacheFile(key: string, dataString: string, template?: PutObjectCommandInput, bucket?: string): Promise<CompleteMultipartUploadCommandOutput>; writeStreamToCacheFile(key: string, data: ReadableStream | Readable, template?: PutObjectCommandInput, bucket?: string): Promise<CompleteMultipartUploadCommandOutput>; synchronize(srcPrefix: string, targetPrefix: string, targetRatchet?: S3CacheRatchetLike, recurseSubFolders?: boolean): Promise<string[]>; preSignedDownloadUrlForCacheFile(key: string, expirationSeconds?: number, bucket?: string): Promise<string>; fetchMetaForCacheFile(key: string, bucket?: string): Promise<HeadObjectCommandOutput>; cacheFileAgeInSeconds(key: string, bucket?: string): Promise<number>; copyFile(srcKey: string, dstKey: string, srcBucket?: string, dstBucket?: string): Promise<CopyObjectCommandOutput>; quietCopyFile(srcKey: string, dstKey: string, srcBucket?: string, dstBucket?: string): Promise<boolean>; directChildrenOfPrefix(prefix: string, expandFiles?: boolean, bucket?: string, maxToReturn?: number): Promise<string[]>; allSubFoldersOfPrefix(prefix: string, bucket?: string): Promise<string[]>; }