🧰 SDK for multi-chain storage, powered by Spheron.
In the example below you can see how to create an instance of SpheronClient
and how to upload a file/directory to the specified protocol.
import SpheronClient, { ProtocolEnum } from "@spheron/storage";
const client = new SpheronClient({ token });
let currentlyUploaded = 0;
const { uploadId, bucketId, protocolLink, dynamicLinks } = await client.upload(
filePath,
{
protocol: ProtocolEnum.IPFS,
name,
onUploadInitiated: (uploadId) => {
console.log(`Upload with id ${uploadId} started...`);
},
onChunkUploaded: (uploadedSize, totalSize) => {
currentlyUploaded += uploadedSize;
console.log(`Uploaded ${currentlyUploaded} of ${totalSize} Bytes.`);
},
}
);
- The
SpheronClient
constructor takes an object that has one propertytoken
. - Function
upload
has two parametersclient.upload(filePath, configuration);
-
filePath
- the path to the file/directory that will be uploaded -
configuration
- an object with parameters:-
configuration.name
- represents the name of the bucket on which you are uploading the data. -
configuration.protocol
- a protocol on which the data will be uploaded. The supported protocols are [ARWEAVE
,IPFS
,FILECOIN
]. -
configuration.onUploadInitiated
- optional - callback function(uploadId: string) => void
. The function will be called once, when the upload is initiated, right before the data is uploaded. The function will be called with one parameter,uploadId
, which represents the id of the started upload. -
configuration.onChunkUploaded
- optional - callback function(uploadedSize: number, totalSize: number) => void
. The function will be called multiple times, depending on the upload size. The function will be called each time a chunk is uploaded, with two parameters. the first oneuploadedSize
represents the size in Bytes for the uploaded chunk. ThetotalSize
represents the total size of the upload in Bytes.
-
- The response of the upload function is an object with parameters:
-
uploadId
- the id of the upload -
bucketId
- the id of the bucket -
protocolLink
- is the protocol link of the upload -
dynamicLinks
- are domains that you have setup for your bucket. When you upload new data to the same bucket, the domains will point to the new uploaded data.
-
-
You can learn more about Spheron and Storage SDK here: