storage

package
v1.23.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 23, 2022 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Overview

Package storage is an auto-generated package for the Cloud Storage API.

Lets you store and retrieve potentially-large, immutable data objects.

NOTE: This package is in alpha. It is not stable, and is likely to change.

Example usage

To get started with this package, create a client.

ctx := context.Background()
c, err := storage.NewClient(ctx)
if err != nil {
	// TODO: Handle error.
}
defer c.Close()

The client will use your default application credentials. Clients should be reused instead of created as needed. The methods of Client are safe for concurrent use by multiple goroutines. The returned client must be Closed when it is done being used.

Using the Client

The following is an example of making an API call with the newly created client.

ctx := context.Background()
c, err := storage.NewClient(ctx)
if err != nil {
	// TODO: Handle error.
}
defer c.Close()

req := &storagepb.DeleteBucketRequest{
	// TODO: Fill request struct fields.
	// See https://pkg.go.dev/google.golang.org/genproto/googleapis/storage/v2#DeleteBucketRequest.
}
err = c.DeleteBucket(ctx, req)
if err != nil {
	// TODO: Handle error.
}

Use of Context

The ctx passed to NewClient is used for authentication requests and for creating the underlying connection, but is not used for subsequent calls. Individual methods on the client use the ctx given to them.

To close the open connection, use the Close() method.

For information about setting deadlines, reusing contexts, and more please visit https://pkg.go.dev/cloud.google.com/go.

Index

Examples

Constants

This section is empty.

Variables

This section is empty.

Functions

func DefaultAuthScopes

func DefaultAuthScopes() []string

DefaultAuthScopes reports the default set of authentication scopes to use with this package.

Types

type BucketIterator added in v1.19.0

type BucketIterator struct {

	// Response is the raw response for the current page.
	// It must be cast to the RPC response type.
	// Calling Next() or InternalFetch() updates this value.
	Response interface{}

	// InternalFetch is for use by the Google Cloud Libraries only.
	// It is not part of the stable interface of this package.
	//
	// InternalFetch returns results from a single call to the underlying RPC.
	// The number of results is no greater than pageSize.
	// If there are no more results, nextPageToken is empty and err is nil.
	InternalFetch func(pageSize int, pageToken string) (results []*storagepb.Bucket, nextPageToken string, err error)
	// contains filtered or unexported fields
}

BucketIterator manages a stream of *storagepb.Bucket.

func (*BucketIterator) Next added in v1.19.0

func (it *BucketIterator) Next() (*storagepb.Bucket, error)

Next returns the next result. Its second return value is iterator.Done if there are no more results. Once Next returns Done, all subsequent calls will return Done.

func (*BucketIterator) PageInfo added in v1.19.0

func (it *BucketIterator) PageInfo() *iterator.PageInfo

PageInfo supports pagination. See the google.golang.org/api/iterator package for details.

type CallOptions

type CallOptions struct {
	DeleteBucket              []gax.CallOption
	GetBucket                 []gax.CallOption
	CreateBucket              []gax.CallOption
	ListBuckets               []gax.CallOption
	LockBucketRetentionPolicy []gax.CallOption
	GetIamPolicy              []gax.CallOption
	SetIamPolicy              []gax.CallOption
	TestIamPermissions        []gax.CallOption
	UpdateBucket              []gax.CallOption
	DeleteNotification        []gax.CallOption
	GetNotification           []gax.CallOption
	CreateNotification        []gax.CallOption
	ListNotifications         []gax.CallOption
	ComposeObject             []gax.CallOption
	DeleteObject              []gax.CallOption
	GetObject                 []gax.CallOption
	ReadObject                []gax.CallOption
	UpdateObject              []gax.CallOption
	WriteObject               []gax.CallOption
	ListObjects               []gax.CallOption
	RewriteObject             []gax.CallOption
	StartResumableWrite       []gax.CallOption
	QueryWriteStatus          []gax.CallOption
	GetServiceAccount         []gax.CallOption
	CreateHmacKey             []gax.CallOption
	DeleteHmacKey             []gax.CallOption
	GetHmacKey                []gax.CallOption
	ListHmacKeys              []gax.CallOption
	UpdateHmacKey             []gax.CallOption
}

CallOptions contains the retry settings for each method of Client.

type Client

type Client struct {

	// The call options for this service.
	CallOptions *CallOptions
	// contains filtered or unexported fields
}

Client is a client for interacting with Cloud Storage API. Methods, except Close, may be called concurrently. However, fields must not be modified concurrently with method calls.

API Overview and Naming SyntaxThe Cloud Storage gRPC API allows applications to read and write data through the abstractions of buckets and objects. For a description of these abstractions please see https://cloud.google.com/storage/docs (at https://cloud.google.com/storage/docs).

Resources are named as follows:

Projects are referred to as they are defined by the Resource Manager API,
using strings like projects/123456 or projects/my-string-id.

Buckets are named using string names of the form:
projects/{project}/buckets/{bucket}
For globally unique buckets, _ may be substituted for the project.

Objects are uniquely identified by their name along with the name of the
bucket they belong to, as separate strings in this API. For example:
ReadObjectRequest {
  bucket: ‘projects/_/buckets/my-bucket’
  object: ‘my-object’
  }
  Note that object names can contain / characters, which are treated as
  any other character (no special directory semantics).

func NewClient

func NewClient(ctx context.Context, opts ...option.ClientOption) (*Client, error)

NewClient creates a new storage client based on gRPC. The returned client must be Closed when it is done being used to clean up its underlying connections.

API Overview and Naming SyntaxThe Cloud Storage gRPC API allows applications to read and write data through the abstractions of buckets and objects. For a description of these abstractions please see https://cloud.google.com/storage/docs (at https://cloud.google.com/storage/docs).

Resources are named as follows:

Projects are referred to as they are defined by the Resource Manager API,
using strings like projects/123456 or projects/my-string-id.

Buckets are named using string names of the form:
projects/{project}/buckets/{bucket}
For globally unique buckets, _ may be substituted for the project.

Objects are uniquely identified by their name along with the name of the
bucket they belong to, as separate strings in this API. For example:
ReadObjectRequest {
  bucket: ‘projects/_/buckets/my-bucket’
  object: ‘my-object’
  }
  Note that object names can contain / characters, which are treated as
  any other character (no special directory semantics).
Example
package main

import (
	"context"

	storage "cloud.google.com/go/storage/internal/apiv2"
)

func main() {
	ctx := context.Background()
	c, err := storage.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	// TODO: Use client.
	_ = c
}
Output:

func (*Client) Close

func (c *Client) Close() error

Close closes the connection to the API service. The user should invoke this when the client is no longer required.

func (*Client) ComposeObject added in v1.19.0

func (c *Client) ComposeObject(ctx context.Context, req *storagepb.ComposeObjectRequest, opts ...gax.CallOption) (*storagepb.Object, error)

ComposeObject concatenates a list of existing objects into a new object in the same bucket.

Example
package main

import (
	"context"

	storage "cloud.google.com/go/storage/internal/apiv2"

	storagepb "google.golang.org/genproto/googleapis/storage/v2"
)

func main() {
	ctx := context.Background()
	c, err := storage.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &storagepb.ComposeObjectRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/google.golang.org/genproto/googleapis/storage/v2#ComposeObjectRequest.
	}
	resp, err := c.ComposeObject(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}
Output:

func (*Client) Connection

func (c *Client) Connection() *grpc.ClientConn

Connection returns a connection to the API service.

Deprecated.

func (*Client) CreateBucket added in v1.19.0

func (c *Client) CreateBucket(ctx context.Context, req *storagepb.CreateBucketRequest, opts ...gax.CallOption) (*storagepb.Bucket, error)

CreateBucket creates a new bucket.

Example
package main

import (
	"context"

	storage "cloud.google.com/go/storage/internal/apiv2"

	storagepb "google.golang.org/genproto/googleapis/storage/v2"
)

func main() {
	ctx := context.Background()
	c, err := storage.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &storagepb.CreateBucketRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/google.golang.org/genproto/googleapis/storage/v2#CreateBucketRequest.
	}
	resp, err := c.CreateBucket(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}
Output:

func (*Client) CreateHmacKey added in v1.19.0

CreateHmacKey creates a new HMAC key for the given service account.

Example
package main

import (
	"context"

	storage "cloud.google.com/go/storage/internal/apiv2"

	storagepb "google.golang.org/genproto/googleapis/storage/v2"
)

func main() {
	ctx := context.Background()
	c, err := storage.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &storagepb.CreateHmacKeyRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/google.golang.org/genproto/googleapis/storage/v2#CreateHmacKeyRequest.
	}
	resp, err := c.CreateHmacKey(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}
Output:

func (*Client) CreateNotification added in v1.19.0

func (c *Client) CreateNotification(ctx context.Context, req *storagepb.CreateNotificationRequest, opts ...gax.CallOption) (*storagepb.Notification, error)

CreateNotification creates a notification subscription for a given bucket. These notifications, when triggered, publish messages to the specified Pub/Sub topics. See https://cloud.google.com/storage/docs/pubsub-notifications (at https://cloud.google.com/storage/docs/pubsub-notifications).

Example
package main

import (
	"context"

	storage "cloud.google.com/go/storage/internal/apiv2"

	storagepb "google.golang.org/genproto/googleapis/storage/v2"
)

func main() {
	ctx := context.Background()
	c, err := storage.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &storagepb.CreateNotificationRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/google.golang.org/genproto/googleapis/storage/v2#CreateNotificationRequest.
	}
	resp, err := c.CreateNotification(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}
Output:

func (*Client) DeleteBucket added in v1.19.0

func (c *Client) DeleteBucket(ctx context.Context, req *storagepb.DeleteBucketRequest, opts ...gax.CallOption) error

DeleteBucket permanently deletes an empty bucket.

Example
package main

import (
	"context"

	storage "cloud.google.com/go/storage/internal/apiv2"

	storagepb "google.golang.org/genproto/googleapis/storage/v2"
)

func main() {
	ctx := context.Background()
	c, err := storage.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &storagepb.DeleteBucketRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/google.golang.org/genproto/googleapis/storage/v2#DeleteBucketRequest.
	}
	err = c.DeleteBucket(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
}
Output:

func (*Client) DeleteHmacKey added in v1.19.0

func (c *Client) DeleteHmacKey(ctx context.Context, req *storagepb.DeleteHmacKeyRequest, opts ...gax.CallOption) error

DeleteHmacKey deletes a given HMAC key. Key must be in an INACTIVE state.

Example
package main

import (
	"context"

	storage "cloud.google.com/go/storage/internal/apiv2"

	storagepb "google.golang.org/genproto/googleapis/storage/v2"
)

func main() {
	ctx := context.Background()
	c, err := storage.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &storagepb.DeleteHmacKeyRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/google.golang.org/genproto/googleapis/storage/v2#DeleteHmacKeyRequest.
	}
	err = c.DeleteHmacKey(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
}
Output:

func (*Client) DeleteNotification added in v1.19.0

func (c *Client) DeleteNotification(ctx context.Context, req *storagepb.DeleteNotificationRequest, opts ...gax.CallOption) error

DeleteNotification permanently deletes a notification subscription.

Example
package main

import (
	"context"

	storage "cloud.google.com/go/storage/internal/apiv2"

	storagepb "google.golang.org/genproto/googleapis/storage/v2"
)

func main() {
	ctx := context.Background()
	c, err := storage.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &storagepb.DeleteNotificationRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/google.golang.org/genproto/googleapis/storage/v2#DeleteNotificationRequest.
	}
	err = c.DeleteNotification(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
}
Output:

func (*Client) DeleteObject added in v1.19.0

func (c *Client) DeleteObject(ctx context.Context, req *storagepb.DeleteObjectRequest, opts ...gax.CallOption) error

DeleteObject deletes an object and its metadata. Deletions are permanent if versioning is not enabled for the bucket, or if the generation parameter is used.

Example
package main

import (
	"context"

	storage "cloud.google.com/go/storage/internal/apiv2"

	storagepb "google.golang.org/genproto/googleapis/storage/v2"
)

func main() {
	ctx := context.Background()
	c, err := storage.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &storagepb.DeleteObjectRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/google.golang.org/genproto/googleapis/storage/v2#DeleteObjectRequest.
	}
	err = c.DeleteObject(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
}
Output:

func (*Client) GetBucket added in v1.19.0

func (c *Client) GetBucket(ctx context.Context, req *storagepb.GetBucketRequest, opts ...gax.CallOption) (*storagepb.Bucket, error)

GetBucket returns metadata for the specified bucket.

Example
package main

import (
	"context"

	storage "cloud.google.com/go/storage/internal/apiv2"

	storagepb "google.golang.org/genproto/googleapis/storage/v2"
)

func main() {
	ctx := context.Background()
	c, err := storage.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &storagepb.GetBucketRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/google.golang.org/genproto/googleapis/storage/v2#GetBucketRequest.
	}
	resp, err := c.GetBucket(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}
Output:

func (*Client) GetHmacKey added in v1.19.0

GetHmacKey gets an existing HMAC key metadata for the given id.

Example
package main

import (
	"context"

	storage "cloud.google.com/go/storage/internal/apiv2"

	storagepb "google.golang.org/genproto/googleapis/storage/v2"
)

func main() {
	ctx := context.Background()
	c, err := storage.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &storagepb.GetHmacKeyRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/google.golang.org/genproto/googleapis/storage/v2#GetHmacKeyRequest.
	}
	resp, err := c.GetHmacKey(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}
Output:

func (*Client) GetIamPolicy added in v1.19.0

func (c *Client) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error)

GetIamPolicy gets the IAM policy for a specified bucket.

Example
package main

import (
	"context"

	storage "cloud.google.com/go/storage/internal/apiv2"

	iampb "google.golang.org/genproto/googleapis/iam/v1"
)

func main() {
	ctx := context.Background()
	c, err := storage.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &iampb.GetIamPolicyRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/google.golang.org/genproto/googleapis/iam/v1#GetIamPolicyRequest.
	}
	resp, err := c.GetIamPolicy(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}
Output:

func (*Client) GetNotification added in v1.19.0

func (c *Client) GetNotification(ctx context.Context, req *storagepb.GetNotificationRequest, opts ...gax.CallOption) (*storagepb.Notification, error)

GetNotification view a notification config.

Example
package main

import (
	"context"

	storage "cloud.google.com/go/storage/internal/apiv2"

	storagepb "google.golang.org/genproto/googleapis/storage/v2"
)

func main() {
	ctx := context.Background()
	c, err := storage.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &storagepb.GetNotificationRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/google.golang.org/genproto/googleapis/storage/v2#GetNotificationRequest.
	}
	resp, err := c.GetNotification(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}
Output:

func (*Client) GetObject added in v1.19.0

func (c *Client) GetObject(ctx context.Context, req *storagepb.GetObjectRequest, opts ...gax.CallOption) (*storagepb.Object, error)

GetObject retrieves an object’s metadata.

Example
package main

import (
	"context"

	storage "cloud.google.com/go/storage/internal/apiv2"

	storagepb "google.golang.org/genproto/googleapis/storage/v2"
)

func main() {
	ctx := context.Background()
	c, err := storage.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &storagepb.GetObjectRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/google.golang.org/genproto/googleapis/storage/v2#GetObjectRequest.
	}
	resp, err := c.GetObject(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}
Output:

func (*Client) GetServiceAccount added in v1.19.0

func (c *Client) GetServiceAccount(ctx context.Context, req *storagepb.GetServiceAccountRequest, opts ...gax.CallOption) (*storagepb.ServiceAccount, error)

GetServiceAccount retrieves the name of a project’s Google Cloud Storage service account.

Example
package main

import (
	"context"

	storage "cloud.google.com/go/storage/internal/apiv2"

	storagepb "google.golang.org/genproto/googleapis/storage/v2"
)

func main() {
	ctx := context.Background()
	c, err := storage.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &storagepb.GetServiceAccountRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/google.golang.org/genproto/googleapis/storage/v2#GetServiceAccountRequest.
	}
	resp, err := c.GetServiceAccount(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}
Output:

func (*Client) ListBuckets added in v1.19.0

func (c *Client) ListBuckets(ctx context.Context, req *storagepb.ListBucketsRequest, opts ...gax.CallOption) *BucketIterator

ListBuckets retrieves a list of buckets for a given project.

Example
package main

import (
	"context"

	storage "cloud.google.com/go/storage/internal/apiv2"
	"google.golang.org/api/iterator"

	storagepb "google.golang.org/genproto/googleapis/storage/v2"
)

func main() {
	ctx := context.Background()
	c, err := storage.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &storagepb.ListBucketsRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/google.golang.org/genproto/googleapis/storage/v2#ListBucketsRequest.
	}
	it := c.ListBuckets(ctx, req)
	for {
		resp, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			// TODO: Handle error.
		}
		// TODO: Use resp.
		_ = resp
	}
}
Output:

func (*Client) ListHmacKeys added in v1.19.0

ListHmacKeys lists HMAC keys under a given project with the additional filters provided.

Example
package main

import (
	"context"

	storage "cloud.google.com/go/storage/internal/apiv2"
	"google.golang.org/api/iterator"

	storagepb "google.golang.org/genproto/googleapis/storage/v2"
)

func main() {
	ctx := context.Background()
	c, err := storage.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &storagepb.ListHmacKeysRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/google.golang.org/genproto/googleapis/storage/v2#ListHmacKeysRequest.
	}
	it := c.ListHmacKeys(ctx, req)
	for {
		resp, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			// TODO: Handle error.
		}
		// TODO: Use resp.
		_ = resp
	}
}
Output:

func (*Client) ListNotifications added in v1.19.0

func (c *Client) ListNotifications(ctx context.Context, req *storagepb.ListNotificationsRequest, opts ...gax.CallOption) *NotificationIterator

ListNotifications retrieves a list of notification subscriptions for a given bucket.

Example
package main

import (
	"context"

	storage "cloud.google.com/go/storage/internal/apiv2"
	"google.golang.org/api/iterator"

	storagepb "google.golang.org/genproto/googleapis/storage/v2"
)

func main() {
	ctx := context.Background()
	c, err := storage.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &storagepb.ListNotificationsRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/google.golang.org/genproto/googleapis/storage/v2#ListNotificationsRequest.
	}
	it := c.ListNotifications(ctx, req)
	for {
		resp, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			// TODO: Handle error.
		}
		// TODO: Use resp.
		_ = resp
	}
}
Output:

func (*Client) ListObjects added in v1.19.0

func (c *Client) ListObjects(ctx context.Context, req *storagepb.ListObjectsRequest, opts ...gax.CallOption) *ObjectIterator

ListObjects retrieves a list of objects matching the criteria.

Example
package main

import (
	"context"

	storage "cloud.google.com/go/storage/internal/apiv2"
	"google.golang.org/api/iterator"

	storagepb "google.golang.org/genproto/googleapis/storage/v2"
)

func main() {
	ctx := context.Background()
	c, err := storage.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &storagepb.ListObjectsRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/google.golang.org/genproto/googleapis/storage/v2#ListObjectsRequest.
	}
	it := c.ListObjects(ctx, req)
	for {
		resp, err := it.Next()
		if err == iterator.Done {
			break
		}
		if err != nil {
			// TODO: Handle error.
		}
		// TODO: Use resp.
		_ = resp
	}
}
Output:

func (*Client) LockBucketRetentionPolicy added in v1.19.0

func (c *Client) LockBucketRetentionPolicy(ctx context.Context, req *storagepb.LockBucketRetentionPolicyRequest, opts ...gax.CallOption) (*storagepb.Bucket, error)

LockBucketRetentionPolicy locks retention policy on a bucket.

Example
package main

import (
	"context"

	storage "cloud.google.com/go/storage/internal/apiv2"

	storagepb "google.golang.org/genproto/googleapis/storage/v2"
)

func main() {
	ctx := context.Background()
	c, err := storage.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &storagepb.LockBucketRetentionPolicyRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/google.golang.org/genproto/googleapis/storage/v2#LockBucketRetentionPolicyRequest.
	}
	resp, err := c.LockBucketRetentionPolicy(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}
Output:

func (*Client) QueryWriteStatus

QueryWriteStatus determines the persisted_size for an object that is being written, which can then be used as the write_offset for the next Write() call.

If the object does not exist (i.e., the object has been deleted, or the first Write() has not yet reached the service), this method returns the error NOT_FOUND.

The client may call QueryWriteStatus() at any time to determine how much data has been processed for this object. This is useful if the client is buffering data and needs to know which data can be safely evicted. For any sequence of QueryWriteStatus() calls for a given object name, the sequence of returned persisted_size values will be non-decreasing.

Example
package main

import (
	"context"

	storage "cloud.google.com/go/storage/internal/apiv2"

	storagepb "google.golang.org/genproto/googleapis/storage/v2"
)

func main() {
	ctx := context.Background()
	c, err := storage.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &storagepb.QueryWriteStatusRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/google.golang.org/genproto/googleapis/storage/v2#QueryWriteStatusRequest.
	}
	resp, err := c.QueryWriteStatus(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}
Output:

func (*Client) ReadObject

ReadObject reads an object’s data.

func (*Client) RewriteObject added in v1.19.0

RewriteObject rewrites a source object to a destination object. Optionally overrides metadata.

Example
package main

import (
	"context"

	storage "cloud.google.com/go/storage/internal/apiv2"

	storagepb "google.golang.org/genproto/googleapis/storage/v2"
)

func main() {
	ctx := context.Background()
	c, err := storage.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &storagepb.RewriteObjectRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/google.golang.org/genproto/googleapis/storage/v2#RewriteObjectRequest.
	}
	resp, err := c.RewriteObject(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}
Output:

func (*Client) SetIamPolicy added in v1.19.0

func (c *Client) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error)

SetIamPolicy updates an IAM policy for the specified bucket.

Example
package main

import (
	"context"

	storage "cloud.google.com/go/storage/internal/apiv2"

	iampb "google.golang.org/genproto/googleapis/iam/v1"
)

func main() {
	ctx := context.Background()
	c, err := storage.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &iampb.SetIamPolicyRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/google.golang.org/genproto/googleapis/iam/v1#SetIamPolicyRequest.
	}
	resp, err := c.SetIamPolicy(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}
Output:

func (*Client) StartResumableWrite

StartResumableWrite starts a resumable write. How long the write operation remains valid, and what happens when the write operation becomes invalid, are service-dependent.

Example
package main

import (
	"context"

	storage "cloud.google.com/go/storage/internal/apiv2"

	storagepb "google.golang.org/genproto/googleapis/storage/v2"
)

func main() {
	ctx := context.Background()
	c, err := storage.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &storagepb.StartResumableWriteRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/google.golang.org/genproto/googleapis/storage/v2#StartResumableWriteRequest.
	}
	resp, err := c.StartResumableWrite(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}
Output:

func (*Client) TestIamPermissions added in v1.19.0

TestIamPermissions tests a set of permissions on the given bucket to see which, if any, are held by the caller.

Example
package main

import (
	"context"

	storage "cloud.google.com/go/storage/internal/apiv2"

	iampb "google.golang.org/genproto/googleapis/iam/v1"
)

func main() {
	ctx := context.Background()
	c, err := storage.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &iampb.TestIamPermissionsRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/google.golang.org/genproto/googleapis/iam/v1#TestIamPermissionsRequest.
	}
	resp, err := c.TestIamPermissions(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}
Output:

func (*Client) UpdateBucket added in v1.19.0

func (c *Client) UpdateBucket(ctx context.Context, req *storagepb.UpdateBucketRequest, opts ...gax.CallOption) (*storagepb.Bucket, error)

UpdateBucket updates a bucket. Equivalent to JSON API’s storage.buckets.patch method.

Example
package main

import (
	"context"

	storage "cloud.google.com/go/storage/internal/apiv2"

	storagepb "google.golang.org/genproto/googleapis/storage/v2"
)

func main() {
	ctx := context.Background()
	c, err := storage.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &storagepb.UpdateBucketRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/google.golang.org/genproto/googleapis/storage/v2#UpdateBucketRequest.
	}
	resp, err := c.UpdateBucket(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}
Output:

func (*Client) UpdateHmacKey added in v1.19.0

UpdateHmacKey updates a given HMAC key state between ACTIVE and INACTIVE.

Example
package main

import (
	"context"

	storage "cloud.google.com/go/storage/internal/apiv2"

	storagepb "google.golang.org/genproto/googleapis/storage/v2"
)

func main() {
	ctx := context.Background()
	c, err := storage.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &storagepb.UpdateHmacKeyRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/google.golang.org/genproto/googleapis/storage/v2#UpdateHmacKeyRequest.
	}
	resp, err := c.UpdateHmacKey(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}
Output:

func (*Client) UpdateObject added in v1.19.0

func (c *Client) UpdateObject(ctx context.Context, req *storagepb.UpdateObjectRequest, opts ...gax.CallOption) (*storagepb.Object, error)

UpdateObject updates an object’s metadata. Equivalent to JSON API’s storage.objects.patch.

Example
package main

import (
	"context"

	storage "cloud.google.com/go/storage/internal/apiv2"

	storagepb "google.golang.org/genproto/googleapis/storage/v2"
)

func main() {
	ctx := context.Background()
	c, err := storage.NewClient(ctx)
	if err != nil {
		// TODO: Handle error.
	}
	defer c.Close()

	req := &storagepb.UpdateObjectRequest{
		// TODO: Fill request struct fields.
		// See https://pkg.go.dev/google.golang.org/genproto/googleapis/storage/v2#UpdateObjectRequest.
	}
	resp, err := c.UpdateObject(ctx, req)
	if err != nil {
		// TODO: Handle error.
	}
	// TODO: Use resp.
	_ = resp
}
Output:

func (*Client) WriteObject

func (c *Client) WriteObject(ctx context.Context, opts ...gax.CallOption) (storagepb.Storage_WriteObjectClient, error)

WriteObject stores a new object and metadata.

An object can be written either in a single message stream or in a resumable sequence of message streams. To write using a single stream, the client should include in the first message of the stream an WriteObjectSpec describing the destination bucket, object, and any preconditions. Additionally, the final message must set ‘finish_write’ to true, or else it is an error.

For a resumable write, the client should instead call StartResumableWrite(), populating a WriteObjectSpec into that request. They should then attach the returned upload_id to the first message of each following call to WriteObject. If the stream is closed before finishing the upload (either explicitly by the client or due to a network error or an error response from the server), the client should do as follows:

Check the result Status of the stream, to determine if writing can be
resumed on this stream or must be restarted from scratch (by calling
StartResumableWrite()). The resumable errors are DEADLINE_EXCEEDED,
INTERNAL, and UNAVAILABLE. For each case, the client should use binary
exponential backoff before retrying.  Additionally, writes can be
resumed after RESOURCE_EXHAUSTED errors, but only after taking
appropriate measures, which may include reducing aggregate send rate
across clients and/or requesting a quota increase for your project.

If the call to WriteObject returns ABORTED, that indicates
concurrent attempts to update the resumable write, caused either by
multiple racing clients or by a single client where the previous
request was timed out on the client side but nonetheless reached the
server. In this case the client should take steps to prevent further
concurrent writes (e.g., increase the timeouts, stop using more than
one process to perform the upload, etc.), and then should follow the
steps below for resuming the upload.

For resumable errors, the client should call QueryWriteStatus() and
then continue writing from the returned persisted_size. This may be
less than the amount of data the client previously sent. Note also that
it is acceptable to send data starting at an offset earlier than the
returned persisted_size; in this case, the service will skip data at
offsets that were already persisted (without checking that it matches
the previously written data), and write only the data starting from the
persisted offset. This behavior can make client-side handling simpler
in some cases.

The service will not view the object as complete until the client has sent a WriteObjectRequest with finish_write set to true. Sending any requests on a stream after sending a request with finish_write set to true will cause an error. The client should check the response it receives to determine how much data the service was able to commit and whether the service views the object as complete.

Attempting to resume an already finalized object will result in an OK status, with a WriteObjectResponse containing the finalized object’s metadata.

type HmacKeyMetadataIterator added in v1.19.0

type HmacKeyMetadataIterator struct {

	// Response is the raw response for the current page.
	// It must be cast to the RPC response type.
	// Calling Next() or InternalFetch() updates this value.
	Response interface{}

	// InternalFetch is for use by the Google Cloud Libraries only.
	// It is not part of the stable interface of this package.
	//
	// InternalFetch returns results from a single call to the underlying RPC.
	// The number of results is no greater than pageSize.
	// If there are no more results, nextPageToken is empty and err is nil.
	InternalFetch func(pageSize int, pageToken string) (results []*storagepb.HmacKeyMetadata, nextPageToken string, err error)
	// contains filtered or unexported fields
}

HmacKeyMetadataIterator manages a stream of *storagepb.HmacKeyMetadata.

func (*HmacKeyMetadataIterator) Next added in v1.19.0

Next returns the next result. Its second return value is iterator.Done if there are no more results. Once Next returns Done, all subsequent calls will return Done.

func (*HmacKeyMetadataIterator) PageInfo added in v1.19.0

func (it *HmacKeyMetadataIterator) PageInfo() *iterator.PageInfo

PageInfo supports pagination. See the google.golang.org/api/iterator package for details.

type NotificationIterator added in v1.19.0

type NotificationIterator struct {

	// Response is the raw response for the current page.
	// It must be cast to the RPC response type.
	// Calling Next() or InternalFetch() updates this value.
	Response interface{}

	// InternalFetch is for use by the Google Cloud Libraries only.
	// It is not part of the stable interface of this package.
	//
	// InternalFetch returns results from a single call to the underlying RPC.
	// The number of results is no greater than pageSize.
	// If there are no more results, nextPageToken is empty and err is nil.
	InternalFetch func(pageSize int, pageToken string) (results []*storagepb.Notification, nextPageToken string, err error)
	// contains filtered or unexported fields
}

NotificationIterator manages a stream of *storagepb.Notification.

func (*NotificationIterator) Next added in v1.19.0

Next returns the next result. Its second return value is iterator.Done if there are no more results. Once Next returns Done, all subsequent calls will return Done.

func (*NotificationIterator) PageInfo added in v1.19.0

func (it *NotificationIterator) PageInfo() *iterator.PageInfo

PageInfo supports pagination. See the google.golang.org/api/iterator package for details.

type ObjectIterator added in v1.19.0

type ObjectIterator struct {

	// Response is the raw response for the current page.
	// It must be cast to the RPC response type.
	// Calling Next() or InternalFetch() updates this value.
	Response interface{}

	// InternalFetch is for use by the Google Cloud Libraries only.
	// It is not part of the stable interface of this package.
	//
	// InternalFetch returns results from a single call to the underlying RPC.
	// The number of results is no greater than pageSize.
	// If there are no more results, nextPageToken is empty and err is nil.
	InternalFetch func(pageSize int, pageToken string) (results []*storagepb.Object, nextPageToken string, err error)
	// contains filtered or unexported fields
}

ObjectIterator manages a stream of *storagepb.Object.

func (*ObjectIterator) Next added in v1.19.0

func (it *ObjectIterator) Next() (*storagepb.Object, error)

Next returns the next result. Its second return value is iterator.Done if there are no more results. Once Next returns Done, all subsequent calls will return Done.

func (*ObjectIterator) PageInfo added in v1.19.0

func (it *ObjectIterator) PageInfo() *iterator.PageInfo

PageInfo supports pagination. See the google.golang.org/api/iterator package for details.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL