gocloud.devgocloud.dev/blob/gcsblob Index | Examples | Files

package gcsblob

import "gocloud.dev/blob/gcsblob"

Package gcsblob provides a blob implementation that uses GCS. Use OpenBucket to construct a blob.Bucket.

Open URLs

For blob.Open URLs, gcsblob registers for the scheme "gs"; URLs start with "gs://".

The URL's Host is used as the bucket name. The following query options are supported:

Example URL:

gs://mybucket

As

gcsblob exposes the following types for As:

Example

Code:play 

package main

import (
	"context"

	"gocloud.dev/blob/gcsblob"
	"gocloud.dev/gcp"
)

func main() {
	ctx := context.Background()

	// Load credentials for GCP.
	// This example uses the default approach; see
	// https://cloud.google.com/docs/authentication/production
	// for more info on alternatives.
	creds, err := gcp.DefaultCredentials(ctx)
	if err != nil {
		return
	}

	// Create an HTTP client.
	// This example uses the default HTTP transport and the credentials created
	// above.
	client, err := gcp.NewHTTPClient(gcp.DefaultTransport(), gcp.CredentialsTokenSource(creds))
	if err != nil {
		return
	}

	// Create a *blob.Bucket.
	_, _ = gcsblob.OpenBucket(ctx, "my-bucket", client, nil)

}

Index

Examples

Functions

func OpenBucket

func OpenBucket(ctx context.Context, bucketName string, client *gcp.HTTPClient, opts *Options) (*blob.Bucket, error)

OpenBucket returns a *blob.Bucket backed by GCS. See the package documentation for an example.

Types

type Options

type Options struct {
	// GoogleAccessID represents the authorizer for SignedURL.
	// Required to use SignedURL.
	// See https://godoc.org/cloud.google.com/go/storage#SignedURLOptions.
	GoogleAccessID string

	// PrivateKey is the Google service account private key.
	// Exactly one of PrivateKey or SignBytes must be non-nil to use SignedURL.
	// See https://godoc.org/cloud.google.com/go/storage#SignedURLOptions.
	PrivateKey []byte

	// SignBytes is a function for implementing custom signing.
	// Exactly one of PrivateKey or SignBytes must be non-nil to use SignedURL.
	// See https://godoc.org/cloud.google.com/go/storage#SignedURLOptions.
	SignBytes func([]byte) ([]byte, error)
}

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

Source Files

gcsblob.go

Version
v0.8.0
Published
Dec 13, 2018
Platform
linux/amd64
Imports
16 packages
Last checked
13 hours ago

Tools for package owners.