routier-collection / plugins/blob/src / BlobStore
Interface: BlobStore
Defined in: plugins/blob/src/stores/types.ts:25
Properties
name
readonlyname:string
Defined in: plugins/blob/src/stores/types.ts:27
Names the store, so an error says which one failed.
Methods
put()
put(
key,bytes,options):Promise<void>
Defined in: plugins/blob/src/stores/types.ts:35
Writes bytes at key.
Must be idempotent: keys are content-addressed, so writing the same key twice writes identical bytes, and a retried upload has to be harmless rather than a duplicate.
Parameters
key
string
bytes
Uint8Array
options
contentType
string
Returns
Promise<void>
has()
has(
key):Promise<boolean>
Defined in: plugins/blob/src/stores/types.ts:38
Whether key already holds bytes. Lets an upload skip work it has already done.
Parameters
key
string
Returns
Promise<boolean>
get()
get(
key):Promise<Uint8Array<ArrayBufferLike>>
Defined in: plugins/blob/src/stores/types.ts:41
Reads the bytes back. Rejects when the key is absent.
Parameters
key
string
Returns
Promise<Uint8Array<ArrayBufferLike>>
delete()
delete(
key):Promise<void>
Defined in: plugins/blob/src/stores/types.ts:44
Removes the object. Succeeds when it is already gone.
Parameters
key
string
Returns
Promise<void>
url()?
optionalurl(key,options?):Promise<string>
Defined in: plugins/blob/src/stores/types.ts:53
A URL a browser can fetch directly, if the store can issue one.
Optional because not every store can. The filesystem store cannot, and says so rather than pretending. For S3 and its compatibles this is a presigned GET, which is what lets a browser download bytes without proxying them through your server.
Parameters
key
string
options?
expiresIn?
number
Returns
Promise<string>
list()?
optionallist(prefix):AsyncIterable<string>
Defined in: plugins/blob/src/stores/types.ts:61
Every key under prefix.
Only for sweeping orphans, which is the one job that legitimately needs to enumerate a bucket. Never call it on a read path.
Parameters
prefix
string
Returns
AsyncIterable<string>
uploadUrl()?
optionaluploadUrl(key,options):Promise<PresignedUpload>
Defined in: plugins/blob/src/stores/types.ts:75
A URL a client can PUT bytes to directly, if the store can issue one.
This is what lets a browser upload to S3 without the bytes passing through your server: the server signs, the browser transfers. A ten-gigabyte upload costs your API one small JSON response.
Returns the headers the client MUST send with the PUT. A presigned URL signs the headers as well as the path, so a client that omits or changes one gets a 403 — that is the mechanism that stops a signed URL for a small text file being reused to upload something else.
Parameters
key
string
options
Returns
Promise<PresignedUpload>