constmyData = JSON.stringify({hello:"world",num:1});constfileUrl = awaitstorage.putFile('my_data.json', myData);// You'll need to save an entirely new string of modified data using putFile with the same fileName every time you want to update a record. // There is no separate update method.
constputFileOptions = {// override the default content typecontentType:'application/json', // override encrypting data by default// you can also set encrypt to a private key to specify a custom encryption keyencrypt:false, // ignore automatic conflict prevention using etagsdangerouslyIgnoreEtag:true}constfileUrl = awaitstorage.putFile('my_data.json', myData, putFileOptions);
constgetFileOptions = {decrypt:false,// by default files stored are signed and can be verified for authenticityverify:false}constfileContent = awaitstorage.getFile('my_data.json', getFileOptions);console.log(fileContent);
Get file for other user
// Retrieve public data saved by users other than the one with the active session// User should have registered username via BNSconstoptions = {username:'yukan.id',// app: 'https://example.org',decrypt:false,};// Set an additional app property within options to retrieve data for a user as saved by an app hosted at a separate domainconstfileContent = awaitstorage.getFile('my_data.json', options);console.log(fileContent);
@stacks/storage
Store and fetch files with Gaia, the decentralized storage system.
Installation
Usage
Initiate a session
Users must authenticate to an app before the storage package will work to save or retrieve data on their behalf.
See also authentication guide using connect for web apps
The storage capabilities will work in cases
userSession.isUserSignedIn()
returnstrue
Initiating a storage client
Note that you can also use an existing
userSession
object created during the authentication process.Put file
Store data at a different path
Put file with options
Get file
Get file with options
Get file for other user
Delete file
Delete the file and the corresponding signature file if signed
List file
List all files in the user's Gaia hub