gocloud.dev: gocloud.dev/blob/memblob Index | Examples | Files

package memblob

import "gocloud.dev/blob/memblob"

Package memblob provides an in-memory blob implementation. Use OpenBucket to construct a *blob.Bucket.

URLs

For blob.OpenBucket memblob registers for the scheme "mem". To customize the URL opener, or for more details on the URL format, see URLOpener. See https://gocloud.dev/concepts/urls/ for background information.

As

memblob does not support any types for As.

Code:

// blob.OpenBucket creates a *blob.Bucket from a URL.
b, err := blob.OpenBucket(context.Background(), "mem://")
if err != nil {
    log.Fatal(err)
}
defer b.Close()

// Now we can use b to read or write files to the container.
ctx := context.Background()
err = b.WriteAll(ctx, "my-key", []byte("hello world"), nil)
if err != nil {
    log.Fatal(err)
}
data, err := b.ReadAll(ctx, "my-key")
if err != nil {
    log.Fatal(err)
}
fmt.Println(string(data))

Output:

hello world

Index

Examples

Package Files

memblob.go

Constants

const Scheme = "mem"

Scheme is the URL scheme memblob registers its URLOpener under on blob.DefaultMux.

func OpenBucket Uses

func OpenBucket(opts *Options) *blob.Bucket

OpenBucket creates a *blob.Bucket backed by memory.

Code:

// This example is used in https://gocloud.dev/howto/blob/#local-ctor

// Variables set up elsewhere:
ctx := context.Background()

// Create an in-memory bucket.
bucket := memblob.OpenBucket(nil)
defer bucket.Close()

// Now we can use bucket to read or write files to the bucket.
err := bucket.WriteAll(ctx, "my-key", []byte("hello world"), nil)
if err != nil {
    log.Fatal(err)
}
data, err := bucket.ReadAll(ctx, "my-key")
if err != nil {
    log.Fatal(err)
}
fmt.Println(string(data))

Output:

hello world

type Options Uses

type Options struct{}

Options sets options for constructing a *blob.Bucket backed by memory.

type URLOpener Uses

type URLOpener struct{}

URLOpener opens URLs like "mem://".

No query parameters are supported.

func (*URLOpener) OpenBucketURL Uses

func (*URLOpener) OpenBucketURL(ctx context.Context, u *url.URL) (*blob.Bucket, error)

OpenBucketURL opens a blob.Bucket based on u.

Package memblob imports 15 packages (graph) and is imported by 1 packages. Updated 2019-07-15. Refresh now. Tools for package owners.