object-storage-client
v0.1.0
Published
TypeScript client for Object Storage Service
Readme
Object Storage Client for TypeScript
TypeScript/JavaScript client library for interacting with the Object Storage Service.
Usage
import { ObjectStorageClient } from 'object-storage-client';
const client = new ObjectStorageClient('http://localhost:8080');
// Create a bucket
const bucket = await client.createBucket('my-bucket');
console.log(`Created bucket: ${bucket.name}`);
// Upload an object
const data = Buffer.from('Hello, World!');
const obj = await client.putObject(
'my-bucket',
'hello.txt',
data,
'text/plain',
{ key1: 'value1' }
);
console.log(`Uploaded object: ${obj.key} (ETag: ${obj.etag})`);
// Download an object
const objData = await client.getObject('my-bucket', 'hello.txt');
console.log(`Downloaded ${objData.data.length} bytes`);
// List objects
const objects = await client.listObjects('my-bucket');
for (const obj of objects) {
console.log(`${obj.key}: ${obj.size} bytes`);
}
// Delete object
await client.deleteObject('my-bucket', 'hello.txt');
// Delete bucket
await client.deleteBucket('my-bucket');API Reference
Client Creation
const client = new ObjectStorageClient('http://localhost:8080');With custom timeout:
const client = new ObjectStorageClient('http://localhost:8080', 60000);Bucket Operations
Create Bucket
const bucket = await client.createBucket('bucket-name');List Buckets
const buckets = await client.listBuckets();Delete Bucket
await client.deleteBucket('bucket-name');Object Operations
Put Object
const data = Buffer.from('content');
const obj = await client.putObject(
'bucket-name',
'object-key',
data,
'application/json',
{ key: 'value' }
);Get Object
const objData = await client.getObject('bucket-name', 'object-key');
// objData.data contains the object buffer
// objData.metadata contains metadataHead Object
const metadata = await client.headObject('bucket-name', 'object-key');Delete Object
await client.deleteObject('bucket-name', 'object-key');List Objects
// List all objects
const objects = await client.listObjects('bucket-name');
// List with prefix
const objects = await client.listObjects('bucket-name', 'prefix/');
// List with prefix and max keys
const objects = await client.listObjects('bucket-name', 'prefix/', 100);Error Handling
The client throws ObjectStorageError for API errors:
import { ObjectStorageError } from 'object-storage-client';
try {
const obj = await client.getObject('bucket', 'key');
} catch (error) {
if (error instanceof ObjectStorageError) {
console.log(`Status: ${error.statusCode}, Message: ${error.message}`);
}
}