#wasmcloud #能力 #actor #能力提供者 #对象存储 #API绑定

wasmcloud-interface-blobstore

通过wasmcloud:blobstore合约访问对象存储的接口

10个版本 (重大更改)

0.9.0 2023年9月19日
0.8.0 2023年8月25日
0.7.0 2023年7月20日
0.6.0 2023年4月12日
0.2.0 2022年3月2日

591WebAssembly

Download history 23/week @ 2024-04-02 64/week @ 2024-04-23 10/week @ 2024-07-02 2/week @ 2024-07-09 54/week @ 2024-07-16

每月66 次下载

Apache-2.0 和可能 LGPL-3.0-or-later

42KB
650

crates.io  TinyGo版本

wasmCloud Blobstore接口

blobstore接口抽象了一个可以管理容器和对象的服务(能力提供者)。使用此接口的actor必须在他们的声明列表中具有能力合约 wasmcloud:blobstorewash claims sign --blob_store)。

能力提供者实现

以下是一个实现 wasmcloud:blobstore 合约的列表。如果您有一个社区/开源版本,请随时提交PR添加您的实现。

名称 供应商 描述
blobstore-s3 wasmCloud 一个管理S3存储桶和对象的blobstore的AWS S3实现
blobstore-fs wasmCloud 一个管理文件系统上的文件夹和文件的实现

示例用法(🦀 Rust)

在blobstore中创建容器

use std::result::Result;
use wasmbus_rpc::actor::prelude::*;
use wasmcloud_interface_blobstore::{Blobstore, BlobstoreSender};
async fn create_container(ctx: &Context, container_name: &str) -> Result<(), RpcError> {
    let blobstore = BlobstoreSender::new();
    blobstore
        .create_container(ctx, &container_name.to_string())
        .await
}

将对象(图像字节)上传到blobstore

use std::result::Result;
use wasmbus_rpc::actor::prelude::*;
use wasmcloud_interface_blobstore::{
    Blobstore, BlobstoreSender, Chunk, PutObjectRequest, PutObjectResponse,
};
async fn upload_bytes(ctx: &Context, image_bytes: &[u8]) -> Result<PutObjectResponse, RpcError> {
    BlobstoreSender::new()
        .put_object(
            ctx,
            &PutObjectRequest {
                chunk: Chunk {
                    container_id: "myfolder".to_string(),
                    object_id: "myobjectname".to_string(),
                    bytes: image_bytes.to_vec(),
                    offset: 0,
                    is_last: true,
                },
                content_type: Some("image/png".to_string()),
                ..Default::default()
            },
        )
        .await
}

依赖项

~12–30MB
~489K SLoC