blobd-client-rs
Rust client for blobd, blob storage designed for huge amounts of random reads and small objects with constant latency.
Installation
[]
= "0.7.0"
Usage
use BlobdClient;
let token_secret: = ;
let client = new;
The client is not Clone. Wrap it in an Arc to share across threads:
use Arc;
let client = new;
Uploading objects
use Bytes;
use join_all;
// Upload large object with parts in parallel
let total_size = 50 * 1024 * 1024; // 50MB
let creation = client.create_object.await?;
let chunk_size = 16 * 1024 * 1024; // 16MB chunks
let mut write_futures = Vecnew;
for offset in .step_by
let receipts = join_all.await;
let receipt_strings: = receipts
.into_iter
.?
.into_iter
.map
.collect;
client.commit_object.await?;
Reading objects
use StreamExt;
// Read entire object
let mut stream = client.read_object.await?;
let mut data = Vecnew;
while let Some = stream.next.await
// Read partial range (bytes 1000-2000)
let stream = client.read_object.await?;
Batch operations
use ;
use File;
use AsyncReadExt;
// Upload many objects at once from diverse sources
let mut objects = Vecnew;
// From buffer
objects.push;
// From file stream
let mut file = open.await?;
let file_size = file.metadata.await?.len;
let file_stream = stream! ;
objects.push;
// From buffer
objects.push;
let result = client.batch_create_objects.await?;
println!;
Other operations
use AuthTokenAction;
// Get object metadata
let info = client.inspect_object.await?;
println!;
// Delete object
client.delete_object.await?;
// Generate presigned URL
let url = client.generate_presigned_url;