Used to check for browser translation.
用于检测浏览器翻译。
ブラウザの翻訳を検出する

Quick Start


This guide will walk you through the initial setup of the DID Spaces SDK, from installation to executing your first command. For a broader understanding of the SDK's capabilities, refer to the Overview or delve deeper into its foundational elements in Core Concepts.

Installation#

To begin, install the @blocklet/did-space-js package using your preferred package manager:

npm install @blocklet/did-space-js
# yarn add @blocklet/did-space-js
# pnpm add @blocklet/did-space-js

Client Initialization#

The core of interacting with DID Spaces is the SpaceClient. Initialize it with your DID Wallet and the DID Space endpoint. The SpaceClient constructor accepts an options object to configure its behavior.

Parameters for SpaceClientOptions

Name

Type

Description

wallet

WalletObject

Required. Your DID Wallet object, used for signing requests to authenticate with the DID Space.

endpoint

string

Required. The base URL of your DID Space application service. Example: https://your-did-space-url/app/api/space/your-space-did/app/your-app-did/

delegation

string

Optional. A JWT token that certifies the requester is authorized to access the space on behalf of another DID.

componentDid

string

Optional. The DID of the component interacting with the DID Space.

abortController

AbortController

Optional. An AbortController instance to cancel ongoing requests.

Example: Initialize SpaceClient

import { SpaceClient } from '@blocklet/did-space-js';
import { createRandomWallet } from '@ocap/wallet'; // Example: create a random wallet for demonstration

// Replace with your actual wallet and DID Space endpoint
const wallet = createRandomWallet();
const endpoint = 'https://your-did-space-url/app/api/space/your-space-did/app/your-app-did/';

const spaceClient = new SpaceClient({
wallet,
endpoint,
});

console.log('SpaceClient initialized successfully.');

Executing Your First Command: Put Object#

The SpaceClient.send() method is the primary way to execute operations against your DID Space. It takes a CommandProtocol instance, which encapsulates the specific operation (e.g., uploading an object, listing files, creating backups).

Let's demonstrate by uploading a simple text file using the PutObjectCommand.

Parameters for PutObjectCommandInput

Name

Type

Description

key

string

Required. The path of the object within the DID Space. Can be a filename or a folder path (ending with /).

data

string | Buffer | Readable

Optional. The content of the file to be uploaded. Can be a string, Node.js Buffer, or a Readable stream.

hash

string

Optional. The hash value of the object, expected to be an IPFS CIDv1 hash.

metadata

Record<string, any>

Optional. A record of key-value pairs for custom metadata associated with the object.

Returns for PutObjectCommandOutput

Name

Type

Description

statusCode

number

The HTTP status code of the operation (e.g., 200 for success).

statusMessage

string

An optional message, typically present if an error occurred.

data

void

This command returns no specific data on success.

Example: Upload a File to DID Space

import { SpaceClient, PutObjectCommand } from '@blocklet/did-space-js';
import { createRandomWallet } from '@ocap/wallet';
import { Buffer } from 'buffer'; // Node.js Buffer for content

async function uploadFile() {
const wallet = createRandomWallet();
// IMPORTANT: Replace with your actual DID Space endpoint
const endpoint = 'https://your-did-space-url/app/api/space/your-space-did/app/your-app-did/';

const spaceClient = new SpaceClient({
wallet,
endpoint,
});

const fileContent = 'Hello, DID Spaces! This is my first file.';
const fileKey = '/my-first-file.txt'; // Path within your DID Space

try {
const command = new PutObjectCommand({
key: fileKey,
data: Buffer.from(fileContent, 'utf-8'), // Content as a Buffer
metadata: {
contentType: 'text/plain',
uploadedBy: wallet.address,
},
});

const result = await spaceClient.send(command);

if (result.statusCode === 200) {
console.log(`Successfully uploaded '${fileKey}' to DID Space.`);
} else {
console.error(`Failed to upload '${fileKey}': ${result.statusMessage || 'Unknown error'}`);
}
} catch (error) {
console.error('An error occurred during file upload:', error);
}
}

uploadFile();

This example initializes the SpaceClient and then uses the PutObjectCommand to upload a simple text file named /my-first-file.txt with some associated metadata. The send method executes the command and returns a CommandOutput containing the operation's status.

Next Steps#

You have successfully set up the DID Spaces SDK and executed your first command. To explore more advanced features and commands, refer to the Commands Reference.