Skip to content

@nogoo9/mcp-server-cloud-fs / MultiProvider

Class: MultiProvider

Defined in: providers/multi.ts:30

A composite StorageProvider that routes operations to the correct sub-provider based on the root's URI scheme.

Enables a single server instance to serve multiple cloud backends simultaneously (e.g., S3 + Azure + GCS).

Example

ts
const multi = new MultiProvider();
multi.register("s3", s3Provider);
multi.register("az", azureProvider);
// Now `multi` can be used as a single provider for VFS

Implements

Constructors

Constructor

new MultiProvider(): MultiProvider

Returns

MultiProvider

Methods

copyObject()

copyObject(root, srcKey, dstKey): Promise<void>

Defined in: providers/multi.ts:69

Parameters

root

ParsedRoot

srcKey

string

dstKey

string

Returns

Promise<void>

Implementation of

StorageProvider.copyObject


createPrefix()

createPrefix(root, prefix): Promise<void>

Defined in: providers/multi.ts:89

Parameters

root

ParsedRoot

prefix

string

Returns

Promise<void>

Implementation of

StorageProvider.createPrefix


deleteObject()

deleteObject(root, key): Promise<void>

Defined in: providers/multi.ts:65

Parameters

root

ParsedRoot

key

string

Returns

Promise<void>

Implementation of

StorageProvider.deleteObject


getObject()

getObject(root, key, range?): Promise<Buffer<ArrayBufferLike>>

Defined in: providers/multi.ts:49

Parameters

root

ParsedRoot

key

string

range?
endByte?

number

startByte

number

Returns

Promise<Buffer<ArrayBufferLike>>

Implementation of

StorageProvider.getObject


getObjectMetadata()

getObjectMetadata(root, key): Promise<ObjectMetadata>

Defined in: providers/multi.ts:110

Get extended metadata and tags for an object.

Parameters

root

ParsedRoot

key

string

Returns

Promise<ObjectMetadata>

Implementation of

StorageProvider.getObjectMetadata


getObjectTags()

getObjectTags(root, key): Promise<Record<string, string>>

Defined in: providers/multi.ts:137

Get tags for an object.

Parameters

root

ParsedRoot

key

string

Returns

Promise<Record<string, string>>

Implementation of

StorageProvider.getObjectTags


getPresignedUrl()

getPresignedUrl(root, key, opts): Promise<string>

Defined in: providers/multi.ts:96

Generate a presigned URL for temporary access to an object. Not all providers support this — check before calling.

Parameters

root

ParsedRoot

key

string

opts
expiresIn

number

operation

"get" | "put"

Returns

Promise<string>

Implementation of

StorageProvider.getPresignedUrl


headObject()

headObject(root, key): Promise<ObjectInfo>

Defined in: providers/multi.ts:77

Parameters

root

ParsedRoot

key

string

Returns

Promise<ObjectInfo>

Implementation of

StorageProvider.headObject


listObjects()

listObjects(root, prefix, delimiter?): Promise<ListResult>

Defined in: providers/multi.ts:81

Parameters

root

ParsedRoot

prefix

string

delimiter?

string

Returns

Promise<ListResult>

Implementation of

StorageProvider.listObjects


listObjectVersions()

listObjectVersions(root, key): Promise<ObjectVersion[]>

Defined in: providers/multi.ts:150

List version history for an object.

Parameters

root

ParsedRoot

key

string

Returns

Promise<ObjectVersion[]>

Implementation of

StorageProvider.listObjectVersions


putObject()

putObject(root, key, content): Promise<void>

Defined in: providers/multi.ts:57

Parameters

root

ParsedRoot

key

string

content

Buffer

Returns

Promise<void>

Implementation of

StorageProvider.putObject


register()

register(scheme, provider): void

Defined in: providers/multi.ts:34

Register a provider for a URI scheme.

Parameters

scheme

string

provider

StorageProvider

Returns

void


restoreObjectVersion()

restoreObjectVersion(root, key, versionId): Promise<void>

Defined in: providers/multi.ts:163

Restore a previous version of an object (copies it over current).

Parameters

root

ParsedRoot

key

string

versionId

string

Returns

Promise<void>

Implementation of

StorageProvider.restoreObjectVersion


setObjectTags()

setObjectTags(root, key, tags): Promise<void>

Defined in: providers/multi.ts:123

Set tags on an object. Replaces all existing tags.

Parameters

root

ParsedRoot

key

string

tags

Record<string, string>

Returns

Promise<void>

Implementation of

StorageProvider.setObjectTags

Released under the PolyForm Shield 1.0.0 License.