Skip to main content

QS3StorageEngine

@quik/storage


@quik/storage / QS3StorageEngine

Class: QS3StorageEngine

Defined in: storage/src/engine/QS3StorageEngine.ts:30

Extends

Constructors

Constructor

new QS3StorageEngine(): QS3StorageEngine

Defined in: storage/src/engine/QS3StorageEngine.ts:36

Returns

QS3StorageEngine

Overrides

QStorageEngineBase.constructor

Properties

_client?

protected optional _client?: S3

Defined in: storage/src/engine/QS3StorageEngine.ts:34

AWS S3 client instance.


_name

protected _name: string

Defined in: storage/src/engine/QStorageEngineBase.ts:22

Storage engine name.

Inherited from

QStorageEngineBase._name


_type

protected _type: QStorageEngineType = QStorageEngineType.LOCAL

Defined in: storage/src/engine/QStorageEngineBase.ts:34

Storage engine type.

Inherited from

QStorageEngineBase._type

Accessors

client

Get Signature

get protected client(): S3

Defined in: storage/src/engine/QS3StorageEngine.ts:68

Retrieve the active S3 client.

Throws

StorageEngineNotEnabledError when S3 is disabled.

Returns

S3


logger

Get Signature

get protected logger(): IQLogger

Defined in: core/src/QObject.ts:15

The logger getter for the object.

Returns

IQLogger

Inherited from

QStorageEngineBase.logger


name

Get Signature

get name(): string

Defined in: storage/src/engine/QStorageEngineBase.ts:27

Storage engine name.

Returns

string

Inherited from

QStorageEngineBase.name


type

Get Signature

get type(): QStorageEngineType

Defined in: storage/src/engine/QStorageEngineBase.ts:39

Storage engine type.

Returns

QStorageEngineType

Inherited from

QStorageEngineBase.type

Methods

copy()

copy(sourcePath, destinationPath): Promise<void>

Defined in: storage/src/engine/QS3StorageEngine.ts:294

Copy a file within the same S3 bucket.

Parameters

sourcePath

string

Source storage path.

destinationPath

string

Destination storage path.

Returns

Promise<void>

Throws

StorageEngineNotEnabledError when S3 is disabled.

Overrides

QStorageEngineBase.copy


copyTo()

copyTo(file, targetEngine, targetPath): Promise<void>

Defined in: storage/src/engine/QS3StorageEngine.ts:314

Copy a file to another storage engine.

Parameters

file

QStorageFile

Source storage file.

targetEngine

QStorageEngineBase

Target storage engine.

targetPath

string

Destination path in the target engine.

Returns

Promise<void>

Throws

StorageEngineNotEnabledError when S3 is disabled.

Overrides

QStorageEngineBase.copyTo


create()

create(file, path, fill?): Promise<QStorageFile>

Defined in: storage/src/engine/QStorageEngineBase.ts:86

Save a file and return a refreshed metadata record.

Parameters

file

QStorageFile

Storage file to save.

path

string

Storage path where the file should be stored.

fill?

boolean = false

Whether to load contents into memory.

Returns

Promise<QStorageFile>

Inherited from

QStorageEngineBase.create


detectEncodingFromBuffer()

protected detectEncodingFromBuffer(buffer): string

Defined in: storage/src/engine/QS3StorageEngine.ts:483

Detect text encoding from file byte order marks.

Parameters

buffer

Buffer

Buffer containing the file header.

Returns

string


endSpan()

protected endSpan(span): void

Defined in: core/src/QObject.ts:35

End a span returned by startSpan.

Parameters

span

TelemetrySpan

The span to end.

Returns

void

Inherited from

QStorageEngineBase.endSpan


get()

get(path, fill?): Promise<QStorageFile>

Defined in: storage/src/engine/QS3StorageEngine.ts:85

Fetch metadata and optionally contents for a stored object.

Parameters

path

string

Storage path for the object.

fill?

boolean = false

Whether to load contents into memory.

Returns

Promise<QStorageFile>

Throws

StorageEngineNotEnabledError when S3 is disabled.

Overrides

QStorageEngineBase.get


getSignedDownloadURL()

getSignedDownloadURL(filePath, expiresIn?): Promise<string>

Defined in: storage/src/engine/QS3StorageEngine.ts:465

Generate a presigned download URL.

Parameters

filePath

string

Storage path for the object.

expiresIn?

number

Expiration time in seconds for the signed URL.

Returns

Promise<string>

Throws

StorageEngineNotEnabledError when S3 is disabled.

Overrides

QStorageEngineBase.getSignedDownloadURL


getSignedUploadURL()

getSignedUploadURL(filePath, expiresIn?): Promise<string>

Defined in: storage/src/engine/QS3StorageEngine.ts:445

Generate a presigned upload URL.

Parameters

filePath

string

Storage path for the object.

expiresIn?

number

Expiration time in seconds for the signed URL.

Returns

Promise<string>

Throws

StorageEngineNotEnabledError when S3 is disabled.

Overrides

QStorageEngineBase.getSignedUploadURL


getUrl()

getUrl(file, expiresIn?): Promise<string>

Defined in: storage/src/engine/QS3StorageEngine.ts:434

Resolve a public URL for an object (presigned).

Parameters

file

QStorageFile

Storage file to resolve a URL for.

expiresIn?

number

Expiration time in seconds for the signed URL.

Returns

Promise<string>

Throws

StorageEngineNotEnabledError when S3 is disabled.

Overrides

QStorageEngineBase.getUrl


importFromPath()

importFromPath(sourcePath, destinationPath, removeSource?): Promise<void>

Defined in: storage/src/engine/QS3StorageEngine.ts:402

Upload a file from disk into S3.

Parameters

sourcePath

string

OS path to the source file.

destinationPath

string

Storage path in the bucket.

removeSource?

boolean = false

Whether to delete the source file after upload.

Returns

Promise<void>

Throws

StorageEngineNotEnabledError when S3 is disabled.

Throws

StorageFileNotFoundError when the source file is missing.

Overrides

QStorageEngineBase.importFromPath


init()

protected init(): void

Defined in: storage/src/engine/QS3StorageEngine.ts:55

Returns

void

Overrides

QStorageEngineBase.init


move()

move(sourcePath, destinationPath): Promise<void>

Defined in: storage/src/engine/QS3StorageEngine.ts:282

Move a file within the same S3 bucket.

Parameters

sourcePath

string

Source storage path.

destinationPath

string

Destination storage path.

Returns

Promise<void>

Throws

StorageEngineNotEnabledError when S3 is disabled.

Overrides

QStorageEngineBase.move


moveTo()

moveTo(file, targetEngine, targetPath): Promise<void>

Defined in: storage/src/engine/QS3StorageEngine.ts:332

Move a file to another storage engine.

Parameters

file

QStorageFile

Source storage file.

targetEngine

QStorageEngineBase

Target storage engine.

targetPath

string

Destination path in the target engine.

Returns

Promise<void>

Throws

StorageEngineNotEnabledError when S3 is disabled.

Overrides

QStorageEngineBase.moveTo


new()

new(path, contents, options?): Promise<QStorageFile>

Defined in: storage/src/engine/QStorageEngineBase.ts:109

Create a new file from raw contents and return refreshed metadata.

Parameters

path

string

Storage path where the file should be stored.

contents

string | Buffer<ArrayBufferLike>

File contents (Buffer or string).

options?

Additional options.

encoding?

BufferEncoding

Text encoding when contents is a string and not base64. Defaults to utf-8 when isBase64 is false, otherwise binary.

fill?

boolean

Whether to return the entity with contents loaded.

isBase64?

boolean

When true, contents is already base64 encoded. Defaults to true for strings.

mimeType?

string

Override detected mime type.

Returns

Promise<QStorageFile>

Inherited from

QStorageEngineBase.new


read()

read(file): Promise<QStorageFile>

Defined in: storage/src/engine/QS3StorageEngine.ts:217

Download a file and attach base64 contents.

Parameters

file

QStorageFile

Storage file to read.

Returns

Promise<QStorageFile>

Throws

StorageEngineNotEnabledError when S3 is disabled.

Overrides

QStorageEngineBase.read


readStream()

readStream(path): Promise<ReadableStream>

Defined in: storage/src/engine/QS3StorageEngine.ts:249

Stream a file from S3 without buffering.

Parameters

path

string

Storage path to read.

Returns

Promise<ReadableStream>

Throws

StorageFileNotFoundError when the object is missing.

Overrides

QStorageEngineBase.readStream


recordSpanError()

protected recordSpanError(span, err): void

Defined in: core/src/QObject.ts:45

Record an exception on an active span.

Parameters

span

TelemetrySpan

The span to record the error on.

err

unknown

The error to record.

Returns

void

Inherited from

QStorageEngineBase.recordSpanError


remove()

remove(path): Promise<void>

Defined in: storage/src/engine/QS3StorageEngine.ts:348

Remove a file from S3.

Parameters

path

string

Storage path to remove.

Returns

Promise<void>

Throws

StorageEngineNotEnabledError when S3 is disabled.

Overrides

QStorageEngineBase.remove


removeFolder()

removeFolder(path): Promise<void>

Defined in: storage/src/engine/QS3StorageEngine.ts:363

Remove all objects under a prefix.

Parameters

path

string

Storage folder prefix to remove.

Returns

Promise<void>

Throws

StorageEngineNotEnabledError when S3 is disabled.

Overrides

QStorageEngineBase.removeFolder


save()

save(file, path): Promise<void>

Defined in: storage/src/engine/QS3StorageEngine.ts:134

Upload a file to S3.

Parameters

file

QStorageFile

Storage file to upload.

path

string

Storage path in the bucket.

Returns

Promise<void>

Throws

StorageEngineNotEnabledError when S3 is disabled.

Throws

StorageFileContentsMissingError when there is no content to upload.

Overrides

QStorageEngineBase.save


saveStream()

saveStream(path, stream, options?): Promise<void>

Defined in: storage/src/engine/QS3StorageEngine.ts:173

Upload a stream directly to S3.

Parameters

path

string

Storage path in the bucket.

stream

ReadableStream

Streamed contents.

options?

Optional metadata overrides.

encoding?

BufferEncoding

mimeType?

string

size?

number

Returns

Promise<void>

Overrides

QStorageEngineBase.saveStream


setSpanAttribute()

protected setSpanAttribute(span, key, value): void

Defined in: core/src/QObject.ts:64

Set a single attribute on an active span.

Parameters

span

TelemetrySpan

The span to update.

key

string

Attribute key.

value

string | number | boolean

Attribute value.

Returns

void

Inherited from

QStorageEngineBase.setSpanAttribute


startSpan()

protected startSpan(spanName, options?): TelemetrySpan

Defined in: core/src/QObject.ts:26

Start a telemetry span for the given operation name. Returns undefined when no telemetry provider is active.

Parameters

spanName

string

Name of the span.

options?

TelemetrySpanOptions

Optional span attributes and kind.

Returns

TelemetrySpan

Inherited from

QStorageEngineBase.startSpan