@bitblit/ratchet-aws
Version:
Common tools for use with AWS browser and node
37 lines (36 loc) • 3.25 kB
TypeScript
import { CompleteMultipartUploadCommandOutput, CopyObjectCommandInput, CopyObjectCommandOutput, DeleteObjectCommandOutput, GetObjectCommandInput, GetObjectCommandOutput, HeadObjectCommandOutput, PutObjectCommandInput, S3Client } from "@aws-sdk/client-s3";
import { Progress } from '@aws-sdk/lib-storage';
import { Readable } from 'stream';
import { S3CacheRatchetLike } from './s3-cache-ratchet-like.js';
export declare class S3CacheRatchet implements S3CacheRatchetLike {
private s3;
private defaultBucket;
constructor(s3: S3Client, defaultBucket?: string);
get s3Client(): S3Client;
static applyCacheControlMaxAge(input: PutObjectCommandInput, seconds: number): PutObjectCommandInput;
static applyUserMetaData(input: PutObjectCommandInput, key: string, value: string): PutObjectCommandInput;
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?: Partial<PutObjectCommandInput>, bucket?: string): Promise<CompleteMultipartUploadCommandOutput>;
writeStringToCacheFile(key: string, dataString: string, template?: Partial<PutObjectCommandInput>, bucket?: string): Promise<CompleteMultipartUploadCommandOutput>;
writeStreamToCacheFile(key: string, data: ReadableStream | Readable, template?: Partial<PutObjectCommandInput>, bucket?: string, progressFn?: (progress: Progress) => void): Promise<CompleteMultipartUploadCommandOutput>;
synchronize(srcPrefix: string, targetPrefix: string, targetRatchet?: S3CacheRatchetLike, recurseSubFolders?: boolean): Promise<string[]>;
fetchMetaForCacheFile(key: string, bucket?: string): Promise<HeadObjectCommandOutput>;
cacheFileAgeInSeconds(key: string, bucket?: string): Promise<number>;
renameFile(srcKey: string, dstKey: string, srcBucket?: string, dstBucket?: string): Promise<CopyObjectCommandOutput>;
copyFile(srcKey: string, dstKey: string, srcBucket?: string, dstBucket?: string, template?: Partial<CopyObjectCommandInput>): Promise<CopyObjectCommandOutput>;
quietCopyFile(srcKey: string, dstKey: string, srcBucket?: string, dstBucket?: string): Promise<boolean>;
preSignedDownloadUrlForCacheFile(key: string, expirationSeconds?: number, bucket?: string): Promise<string>;
preSignedUploadUrlForCacheFile(key: string, expirationSeconds?: number, bucket?: string): Promise<string>;
directChildrenOfPrefix(prefix: string, expandFiles?: boolean, bucket?: string, maxToReturn?: number): Promise<string[]>;
allSubFoldersOfPrefix(prefix: string, bucket?: string): Promise<string[]>;
private bucketVal;
}