pub trait Blobstore {
Show 13 methods fn container_exists<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        ctx: &'life1 Context,
        arg: &'life2 ContainerId
    ) -> Pin<Box<dyn Future<Output = RpcResult<bool>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; fn create_container<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        ctx: &'life1 Context,
        arg: &'life2 ContainerId
    ) -> Pin<Box<dyn Future<Output = RpcResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; fn get_container_info<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        ctx: &'life1 Context,
        arg: &'life2 ContainerId
    ) -> Pin<Box<dyn Future<Output = RpcResult<ContainerMetadata>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; fn list_containers<'life0, 'life1, 'async_trait>(
        &'life0 self,
        ctx: &'life1 Context
    ) -> Pin<Box<dyn Future<Output = RpcResult<ContainersInfo>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; fn remove_containers<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        ctx: &'life1 Context,
        arg: &'life2 ContainerIds
    ) -> Pin<Box<dyn Future<Output = RpcResult<MultiResult>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; fn object_exists<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        ctx: &'life1 Context,
        arg: &'life2 ContainerObject
    ) -> Pin<Box<dyn Future<Output = RpcResult<bool>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; fn get_object_info<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        ctx: &'life1 Context,
        arg: &'life2 ContainerObject
    ) -> Pin<Box<dyn Future<Output = RpcResult<ObjectMetadata>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; fn list_objects<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        ctx: &'life1 Context,
        arg: &'life2 ListObjectsRequest
    ) -> Pin<Box<dyn Future<Output = RpcResult<ListObjectsResponse>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; fn remove_objects<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        ctx: &'life1 Context,
        arg: &'life2 RemoveObjectsRequest
    ) -> Pin<Box<dyn Future<Output = RpcResult<MultiResult>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; fn put_object<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        ctx: &'life1 Context,
        arg: &'life2 PutObjectRequest
    ) -> Pin<Box<dyn Future<Output = RpcResult<PutObjectResponse>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; fn get_object<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        ctx: &'life1 Context,
        arg: &'life2 GetObjectRequest
    ) -> Pin<Box<dyn Future<Output = RpcResult<GetObjectResponse>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; fn put_chunk<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        ctx: &'life1 Context,
        arg: &'life2 PutChunkRequest
    ) -> Pin<Box<dyn Future<Output = RpcResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; fn contract_id() -> &'static str { ... }
}
Expand description

The BlobStore service, provider side wasmbus.contractId: wasmcloud:blobstore wasmbus.providerReceive

Required Methods

Returns whether the container exists

Creates a container by name, returning success if it worked Note that container names may not be globally unique - just unique within the “namespace” of the connecting actor and linkdef

Retrieves information about the container. Returns error if the container id is invalid or not found.

Returns list of container ids

Empty and remove the container(s) The MultiResult list contains one entry for each container that was not successfully removed, with the ‘key’ value representing the container name. If the MultiResult list is empty, all container removals succeeded.

Returns whether the object exists

Retrieves information about the object. Returns error if the object id is invalid or not found.

Lists the objects in the container. If the container exists and is empty, the returned objects list is empty. Parameters of the request may be used to limit the object names returned with an optional start value, end value, and maximum number of items. The provider may limit the number of items returned. If the list is truncated, the response contains a continuation token that may be submitted in a subsequent ListObjects request.

Optional object metadata fields (i.e., contentType and contentEncoding) may not be filled in for ListObjects response. To get complete object metadata, use GetObjectInfo.

Removes the objects. In the event any of the objects cannot be removed, the operation continues until all requested deletions have been attempted. The MultiRequest includes a list of errors, one for each deletion request that did not succeed. If the list is empty, all removals succeeded.

Requests to start upload of a file/blob to the Blobstore. It is recommended to keep chunks under 1MB to avoid exceeding nats default message size

Requests to retrieve an object. If the object is large, the provider may split the response into multiple parts It is recommended to keep chunks under 1MB to avoid exceeding nats default message size

Uploads a file chunk to a blobstore. This must be called AFTER PutObject It is recommended to keep chunks under 1MB to avoid exceeding nats default message size

Provided Methods

returns the capability contract id for this interface

Implementors