[**@jupyterlite**](../../../README.md) *** [@jupyterlite](../../../README.md) / [@jupyterlite/services](../README.md) / BrowserStorageDrive # Class: BrowserStorageDrive Defined in: [packages/services/src/contents/drive.ts:42](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L42) A custom drive to store files in the browser storage. ## Implements - `IDrive` ## Constructors ### Constructor > **new BrowserStorageDrive**(`options`): `BrowserStorageDrive` Defined in: [packages/services/src/contents/drive.ts:46](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L46) Construct a new localForage-powered contents provider #### Parameters ##### options [`IOptions`](../namespaces/BrowserStorageDrive/interfaces/IOptions.md) #### Returns `BrowserStorageDrive` ## Properties ### contentProviderRegistry > `readonly` **contentProviderRegistry**: `ContentProviderRegistry` Defined in: [packages/services/src/contents/drive.ts:66](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L66) **`Experimental`** Content provider registry. #### Implementation of `Contents.IDrive.contentProviderRegistry` ## Accessors ### checkpoints #### Get Signature > **get** `protected` **checkpoints**(): `Promise`\<`LocalForage`\> Defined in: [packages/services/src/contents/drive.ts:186](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L186) A lazy reference to the underlying checkpoints. ##### Returns `Promise`\<`LocalForage`\> *** ### counters #### Get Signature > **get** `protected` **counters**(): `Promise`\<`LocalForage`\> Defined in: [packages/services/src/contents/drive.ts:179](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L179) A lazy reference to the underlying counters. ##### Returns `Promise`\<`LocalForage`\> *** ### defaultStorageOptions #### Get Signature > **get** `protected` **defaultStorageOptions**(): `LocalForageOptions` Defined in: [packages/services/src/contents/drive.ts:193](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L193) Get default options for localForage instances ##### Returns `LocalForageOptions` *** ### fileChanged #### Get Signature > **get** **fileChanged**(): `ISignal`\<`IDrive`, `IChangedArgs`\> Defined in: [packages/services/src/contents/drive.ts:103](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L103) Signal emitted when a file operation takes place. ##### Returns `ISignal`\<`IDrive`, `IChangedArgs`\> #### Implementation of `Contents.IDrive.fileChanged` *** ### isDisposed #### Get Signature > **get** **isDisposed**(): `boolean` Defined in: [packages/services/src/contents/drive.ts:82](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L82) Whether the drive is disposed. ##### Returns `boolean` #### Implementation of `Contents.IDrive.isDisposed` *** ### name #### Get Signature > **get** **name**(): `string` Defined in: [packages/services/src/contents/drive.ts:89](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L89) The name of the drive. ##### Returns `string` #### Implementation of `Contents.IDrive.name` *** ### ready #### Get Signature > **get** **ready**(): `Promise`\<`void`\> Defined in: [packages/services/src/contents/drive.ts:165](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L165) A promise that resolves once all storage is fully initialized. ##### Returns `Promise`\<`void`\> *** ### serverSettings #### Get Signature > **get** **serverSettings**(): `ISettings` Defined in: [packages/services/src/contents/drive.ts:96](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L96) The server settings of the drive. ##### Returns `ISettings` #### Implementation of `Contents.IDrive.serverSettings` *** ### storage #### Get Signature > **get** `protected` **storage**(): `Promise`\<`LocalForage`\> Defined in: [packages/services/src/contents/drive.ts:172](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L172) A lazy reference to the underlying storage. ##### Returns `Promise`\<`LocalForage`\> ## Methods ### clearStorage() > **clearStorage**(): `Promise`\<`void`\> Defined in: [packages/services/src/contents/drive.ts:241](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L241) Clear all storage (files, counters, and checkpoints). #### Returns `Promise`\<`void`\> A promise which resolves when all storage is cleared. *** ### copy() > **copy**(`path`, `toDir`): `Promise`\<`IModel`\> Defined in: [packages/services/src/contents/drive.ts:375](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L375) Copy a file into a given directory. #### Parameters ##### path `string` The original file path. ##### toDir `string` The destination directory path. #### Returns `Promise`\<`IModel`\> A promise which resolves with the new contents model when the file is copied. #### Notes The server will select the name of the copied file. #### Implementation of `Contents.IDrive.copy` *** ### createCheckpoint() > **createCheckpoint**(`path`): `Promise`\<`ICheckpointModel`\> Defined in: [packages/services/src/contents/drive.ts:735](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L735) Create a checkpoint for a file. #### Parameters ##### path `string` The path of the file. #### Returns `Promise`\<`ICheckpointModel`\> A promise which resolves with the new checkpoint model when the checkpoint is created. #### Implementation of `Contents.IDrive.createCheckpoint` *** ### createDefaultCheckpoints() > `protected` **createDefaultCheckpoints**(): `LocalForage` Defined in: [packages/services/src/contents/drive.ts:228](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L228) Create the default checkpoint storage. #### Returns `LocalForage` *** ### createDefaultCounters() > `protected` **createDefaultCounters**(): `LocalForage` Defined in: [packages/services/src/contents/drive.ts:217](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L217) Initialize the default storage for counting file suffixes. #### Returns `LocalForage` *** ### createDefaultStorage() > `protected` **createDefaultStorage**(): `LocalForage` Defined in: [packages/services/src/contents/drive.ts:206](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L206) Initialize the default storage for contents. #### Returns `LocalForage` *** ### delete() > **delete**(`path`): `Promise`\<`void`\> Defined in: [packages/services/src/contents/drive.ts:701](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L701) Delete a file from browser storage. Has no effect on server-backed files, which will re-appear with their original timestamp. #### Parameters ##### path `string` The path to the file. #### Returns `Promise`\<`void`\> #### Implementation of `Contents.IDrive.delete` *** ### deleteCheckpoint() > **deleteCheckpoint**(`path`, `checkpointID`): `Promise`\<`void`\> Defined in: [packages/services/src/contents/drive.ts:796](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L796) Delete a checkpoint for a file. #### Parameters ##### path `string` The path of the file. ##### checkpointID `string` The id of the checkpoint to delete. #### Returns `Promise`\<`void`\> A promise which resolves when the checkpoint is deleted. #### Implementation of `Contents.IDrive.deleteCheckpoint` *** ### dispose() > **dispose**(): `void` Defined in: [packages/services/src/contents/drive.ts:71](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L71) Dispose the drive. #### Returns `void` #### Implementation of `Contents.IDrive.dispose` *** ### forgetPath() > `protected` **forgetPath**(`path`): `Promise`\<`void`\> Defined in: [packages/services/src/contents/drive.ts:720](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L720) Remove the localForage and checkpoints for a path. #### Parameters ##### path `string` The path to the file #### Returns `Promise`\<`void`\> *** ### get() > **get**(`path`, `options?`): `Promise`\<`IModel`\> Defined in: [packages/services/src/contents/drive.ts:417](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L417) Get a file or directory. #### Parameters ##### path `string` ##### options? `IFetchOptions` #### Returns `Promise`\<`IModel`\> A promise which resolves with the file content. #### Implementation of `Contents.IDrive.get` *** ### getDownloadUrl() > **getDownloadUrl**(`path`): `Promise`\<`string`\> Defined in: [packages/services/src/contents/drive.ts:110](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L110) Get the download URL #### Parameters ##### path `string` #### Returns `Promise`\<`string`\> #### Implementation of `Contents.IDrive.getDownloadUrl` *** ### initialize() > **initialize**(): `Promise`\<`void`\> Defined in: [packages/services/src/contents/drive.ts:148](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L148) Finish any initialization after server has started and all extensions are applied. TODO: keep private? #### Returns `Promise`\<`void`\> *** ### initStorage() > `protected` **initStorage**(): `Promise`\<`void`\> Defined in: [packages/services/src/contents/drive.ts:156](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L156) Initialize all storage instances #### Returns `Promise`\<`void`\> *** ### listCheckpoints() > **listCheckpoints**(`path`): `Promise`\<`ICheckpointModel`[]\> Defined in: [packages/services/src/contents/drive.ts:763](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L763) List available checkpoints for a file. #### Parameters ##### path `string` The path of the file. #### Returns `Promise`\<`ICheckpointModel`[]\> A promise which resolves with a list of checkpoint models for the file. #### Implementation of `Contents.IDrive.listCheckpoints` *** ### newUntitled() > **newUntitled**(`options?`): `Promise`\<`IModel`\> Defined in: [packages/services/src/contents/drive.ts:256](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L256) Create a new untitled file or directory in the specified directory path. #### Parameters ##### options? `ICreateOptions` #### Returns `Promise`\<`IModel`\> A promise which resolves with the created file content when the file is created. #### Implementation of `Contents.IDrive.newUntitled` *** ### normalizeCheckpoint() > `protected` **normalizeCheckpoint**(`model`, `id`): `ICheckpointModel` Defined in: [packages/services/src/contents/drive.ts:768](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L768) #### Parameters ##### model `IModel` ##### id `number` #### Returns `ICheckpointModel` *** ### reduceBytesToString() > `protected` **reduceBytesToString**(`data`, `byte`): `string` Defined in: [packages/services/src/contents/drive.ts:968](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L968) A reducer for turning arbitrary binary into a string #### Parameters ##### data `string` ##### byte `number` #### Returns `string` *** ### rename() > **rename**(`oldLocalPath`, `newLocalPath`): `Promise`\<`IModel`\> Defined in: [packages/services/src/contents/drive.ts:502](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L502) Rename a file or directory. #### Parameters ##### oldLocalPath `string` The original file path. ##### newLocalPath `string` The new file path. #### Returns `Promise`\<`IModel`\> A promise which resolves with the new file content model when the file is renamed. #### Implementation of `Contents.IDrive.rename` *** ### restoreCheckpoint() > **restoreCheckpoint**(`path`, `checkpointID`): `Promise`\<`void`\> Defined in: [packages/services/src/contents/drive.ts:780](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L780) Restore a file to a known checkpoint state. #### Parameters ##### path `string` The path of the file. ##### checkpointID `string` The id of the checkpoint to restore. #### Returns `Promise`\<`void`\> A promise which resolves when the checkpoint is restored. #### Implementation of `Contents.IDrive.restoreCheckpoint` *** ### save() > **save**(`path`, `options`): `Promise`\<`IModel`\> Defined in: [packages/services/src/contents/drive.ts:550](https://github.com/jupyterlite/jupyterlite/blob/14439ec34e3cade5baa221a050277e15da9d0c06/packages/services/src/contents/drive.ts#L550) Save a file. #### Parameters ##### path `string` The desired file path. ##### options `Partial`\<`IModel`\> & `IContentProvisionOptions` = `{}` Optional overrides to the model. #### Returns `Promise`\<`IModel`\> A promise which resolves with the file content model when the file is saved. #### Implementation of `Contents.IDrive.save`