package storage
import "cloud.google.com/go/storage/internal/apiv2"
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 ¶
- func DefaultAuthScopes() []string
- type BucketIterator
- func (it *BucketIterator) Next() (*storagepb.Bucket, error)
- func (it *BucketIterator) PageInfo() *iterator.PageInfo
- type CallOptions
- type Client
- func NewClient(ctx context.Context, opts ...option.ClientOption) (*Client, error)
- func (c *Client) Close() error
- func (c *Client) ComposeObject(ctx context.Context, req *storagepb.ComposeObjectRequest, opts ...gax.CallOption) (*storagepb.Object, error)
- func (c *Client) Connection() *grpc.ClientConn
- func (c *Client) CreateBucket(ctx context.Context, req *storagepb.CreateBucketRequest, opts ...gax.CallOption) (*storagepb.Bucket, error)
- func (c *Client) CreateHmacKey(ctx context.Context, req *storagepb.CreateHmacKeyRequest, opts ...gax.CallOption) (*storagepb.CreateHmacKeyResponse, error)
- func (c *Client) CreateNotification(ctx context.Context, req *storagepb.CreateNotificationRequest, opts ...gax.CallOption) (*storagepb.Notification, error)
- func (c *Client) DeleteBucket(ctx context.Context, req *storagepb.DeleteBucketRequest, opts ...gax.CallOption) error
- func (c *Client) DeleteHmacKey(ctx context.Context, req *storagepb.DeleteHmacKeyRequest, opts ...gax.CallOption) error
- func (c *Client) DeleteNotification(ctx context.Context, req *storagepb.DeleteNotificationRequest, opts ...gax.CallOption) error
- func (c *Client) DeleteObject(ctx context.Context, req *storagepb.DeleteObjectRequest, opts ...gax.CallOption) error
- func (c *Client) GetBucket(ctx context.Context, req *storagepb.GetBucketRequest, opts ...gax.CallOption) (*storagepb.Bucket, error)
- func (c *Client) GetHmacKey(ctx context.Context, req *storagepb.GetHmacKeyRequest, opts ...gax.CallOption) (*storagepb.HmacKeyMetadata, error)
- func (c *Client) GetIamPolicy(ctx context.Context, req *iampb.GetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error)
- func (c *Client) GetNotification(ctx context.Context, req *storagepb.GetNotificationRequest, opts ...gax.CallOption) (*storagepb.Notification, error)
- func (c *Client) GetObject(ctx context.Context, req *storagepb.GetObjectRequest, opts ...gax.CallOption) (*storagepb.Object, error)
- func (c *Client) GetServiceAccount(ctx context.Context, req *storagepb.GetServiceAccountRequest, opts ...gax.CallOption) (*storagepb.ServiceAccount, error)
- func (c *Client) ListBuckets(ctx context.Context, req *storagepb.ListBucketsRequest, opts ...gax.CallOption) *BucketIterator
- func (c *Client) ListHmacKeys(ctx context.Context, req *storagepb.ListHmacKeysRequest, opts ...gax.CallOption) *HmacKeyMetadataIterator
- func (c *Client) ListNotifications(ctx context.Context, req *storagepb.ListNotificationsRequest, opts ...gax.CallOption) *NotificationIterator
- func (c *Client) ListObjects(ctx context.Context, req *storagepb.ListObjectsRequest, opts ...gax.CallOption) *ObjectIterator
- func (c *Client) LockBucketRetentionPolicy(ctx context.Context, req *storagepb.LockBucketRetentionPolicyRequest, opts ...gax.CallOption) (*storagepb.Bucket, error)
- func (c *Client) QueryWriteStatus(ctx context.Context, req *storagepb.QueryWriteStatusRequest, opts ...gax.CallOption) (*storagepb.QueryWriteStatusResponse, error)
- func (c *Client) ReadObject(ctx context.Context, req *storagepb.ReadObjectRequest, opts ...gax.CallOption) (storagepb.Storage_ReadObjectClient, error)
- func (c *Client) RewriteObject(ctx context.Context, req *storagepb.RewriteObjectRequest, opts ...gax.CallOption) (*storagepb.RewriteResponse, error)
- func (c *Client) SetIamPolicy(ctx context.Context, req *iampb.SetIamPolicyRequest, opts ...gax.CallOption) (*iampb.Policy, error)
- func (c *Client) StartResumableWrite(ctx context.Context, req *storagepb.StartResumableWriteRequest, opts ...gax.CallOption) (*storagepb.StartResumableWriteResponse, error)
- func (c *Client) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error)
- func (c *Client) UpdateBucket(ctx context.Context, req *storagepb.UpdateBucketRequest, opts ...gax.CallOption) (*storagepb.Bucket, error)
- func (c *Client) UpdateHmacKey(ctx context.Context, req *storagepb.UpdateHmacKeyRequest, opts ...gax.CallOption) (*storagepb.HmacKeyMetadata, error)
- func (c *Client) UpdateObject(ctx context.Context, req *storagepb.UpdateObjectRequest, opts ...gax.CallOption) (*storagepb.Object, error)
- func (c *Client) WriteObject(ctx context.Context, opts ...gax.CallOption) (storagepb.Storage_WriteObjectClient, error)
- type HmacKeyMetadataIterator
- func (it *HmacKeyMetadataIterator) Next() (*storagepb.HmacKeyMetadata, error)
- func (it *HmacKeyMetadataIterator) PageInfo() *iterator.PageInfo
- type NotificationIterator
- func (it *NotificationIterator) Next() (*storagepb.Notification, error)
- func (it *NotificationIterator) PageInfo() *iterator.PageInfo
- type ObjectIterator
Examples ¶
- Client.ComposeObject
- Client.CreateBucket
- Client.CreateHmacKey
- Client.CreateNotification
- Client.DeleteBucket
- Client.DeleteHmacKey
- Client.DeleteNotification
- Client.DeleteObject
- Client.GetBucket
- Client.GetHmacKey
- Client.GetIamPolicy
- Client.GetNotification
- Client.GetObject
- Client.GetServiceAccount
- Client.ListBuckets
- Client.ListHmacKeys
- Client.ListNotifications
- Client.ListObjects
- Client.LockBucketRetentionPolicy
- Client.QueryWriteStatus
- Client.RewriteObject
- Client.SetIamPolicy
- Client.StartResumableWrite
- Client.TestIamPermissions
- Client.UpdateBucket
- Client.UpdateHmacKey
- Client.UpdateObject
- NewClient
Functions ¶
func DefaultAuthScopes ¶
func DefaultAuthScopes() []string
DefaultAuthScopes reports the default set of authentication scopes to use with this package.
Types ¶
type BucketIterator ¶
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 ¶
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 ¶
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 ¶
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¶
Code:play
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 }
func (*Client) Close ¶
Close closes the connection to the API service. The user should invoke this when the client is no longer required.
func (*Client) ComposeObject ¶
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.
Code:play
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
}
func (*Client) Connection ¶
func (c *Client) Connection() *grpc.ClientConn
Connection returns a connection to the API service.
Deprecated.
func (*Client) CreateBucket ¶
func (c *Client) CreateBucket(ctx context.Context, req *storagepb.CreateBucketRequest, opts ...gax.CallOption) (*storagepb.Bucket, error)
CreateBucket creates a new bucket.
Code:play
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
}
func (*Client) CreateHmacKey ¶
func (c *Client) CreateHmacKey(ctx context.Context, req *storagepb.CreateHmacKeyRequest, opts ...gax.CallOption) (*storagepb.CreateHmacKeyResponse, error)
CreateHmacKey creates a new HMAC key for the given service account.
Code:play
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
}
func (*Client) CreateNotification ¶
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).
Code:play
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
}
func (*Client) DeleteBucket ¶
func (c *Client) DeleteBucket(ctx context.Context, req *storagepb.DeleteBucketRequest, opts ...gax.CallOption) error
DeleteBucket permanently deletes an empty bucket.
Code:play
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.
}
}
func (*Client) DeleteHmacKey ¶
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.
Code:play
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.
}
}
func (*Client) DeleteNotification ¶
func (c *Client) DeleteNotification(ctx context.Context, req *storagepb.DeleteNotificationRequest, opts ...gax.CallOption) error
DeleteNotification permanently deletes a notification subscription.
Code:play
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.
}
}
func (*Client) DeleteObject ¶
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.
Code:play
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.
}
}
func (*Client) GetBucket ¶
func (c *Client) GetBucket(ctx context.Context, req *storagepb.GetBucketRequest, opts ...gax.CallOption) (*storagepb.Bucket, error)
GetBucket returns metadata for the specified bucket.
Code:play
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
}
func (*Client) GetHmacKey ¶
func (c *Client) GetHmacKey(ctx context.Context, req *storagepb.GetHmacKeyRequest, opts ...gax.CallOption) (*storagepb.HmacKeyMetadata, error)
GetHmacKey gets an existing HMAC key metadata for the given id.
Code:play
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
}
func (*Client) GetIamPolicy ¶
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.
Code:play
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
}
func (*Client) GetNotification ¶
func (c *Client) GetNotification(ctx context.Context, req *storagepb.GetNotificationRequest, opts ...gax.CallOption) (*storagepb.Notification, error)
GetNotification view a notification config.
Code:play
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
}
func (*Client) GetObject ¶
func (c *Client) GetObject(ctx context.Context, req *storagepb.GetObjectRequest, opts ...gax.CallOption) (*storagepb.Object, error)
GetObject retrieves an object’s metadata.
Code:play
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
}
func (*Client) GetServiceAccount ¶
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.
Code:play
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
}
func (*Client) ListBuckets ¶
func (c *Client) ListBuckets(ctx context.Context, req *storagepb.ListBucketsRequest, opts ...gax.CallOption) *BucketIterator
ListBuckets retrieves a list of buckets for a given project.
Code:play
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
}
}
func (*Client) ListHmacKeys ¶
func (c *Client) ListHmacKeys(ctx context.Context, req *storagepb.ListHmacKeysRequest, opts ...gax.CallOption) *HmacKeyMetadataIterator
ListHmacKeys lists HMAC keys under a given project with the additional filters provided.
Code:play
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
}
}
func (*Client) ListNotifications ¶
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.
Code:play
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
}
}
func (*Client) ListObjects ¶
func (c *Client) ListObjects(ctx context.Context, req *storagepb.ListObjectsRequest, opts ...gax.CallOption) *ObjectIterator
ListObjects retrieves a list of objects matching the criteria.
Code:play
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
}
}
func (*Client) LockBucketRetentionPolicy ¶
func (c *Client) LockBucketRetentionPolicy(ctx context.Context, req *storagepb.LockBucketRetentionPolicyRequest, opts ...gax.CallOption) (*storagepb.Bucket, error)
LockBucketRetentionPolicy locks retention policy on a bucket.
Code:play
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
}
func (*Client) QueryWriteStatus ¶
func (c *Client) QueryWriteStatus(ctx context.Context, req *storagepb.QueryWriteStatusRequest, opts ...gax.CallOption) (*storagepb.QueryWriteStatusResponse, error)
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.
Code:play
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
}
func (*Client) ReadObject ¶
func (c *Client) ReadObject(ctx context.Context, req *storagepb.ReadObjectRequest, opts ...gax.CallOption) (storagepb.Storage_ReadObjectClient, error)
ReadObject reads an object’s data.
func (*Client) RewriteObject ¶
func (c *Client) RewriteObject(ctx context.Context, req *storagepb.RewriteObjectRequest, opts ...gax.CallOption) (*storagepb.RewriteResponse, error)
RewriteObject rewrites a source object to a destination object. Optionally overrides
metadata.
Code:play
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
}
func (*Client) SetIamPolicy ¶
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.
Code:play
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
}
func (*Client) StartResumableWrite ¶
func (c *Client) StartResumableWrite(ctx context.Context, req *storagepb.StartResumableWriteRequest, opts ...gax.CallOption) (*storagepb.StartResumableWriteResponse, error)
StartResumableWrite starts a resumable write. How long the write operation remains valid, and
what happens when the write operation becomes invalid, are
service-dependent.
Code:play
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
}
func (*Client) TestIamPermissions ¶
func (c *Client) TestIamPermissions(ctx context.Context, req *iampb.TestIamPermissionsRequest, opts ...gax.CallOption) (*iampb.TestIamPermissionsResponse, error)
TestIamPermissions tests a set of permissions on the given bucket to see which, if
any, are held by the caller.
Code:play
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
}
func (*Client) UpdateBucket ¶
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.
Code:play
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
}
func (*Client) UpdateHmacKey ¶
func (c *Client) UpdateHmacKey(ctx context.Context, req *storagepb.UpdateHmacKeyRequest, opts ...gax.CallOption) (*storagepb.HmacKeyMetadata, error)
UpdateHmacKey updates a given HMAC key state between ACTIVE and INACTIVE.
Code:play
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
}
func (*Client) UpdateObject ¶
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.
Code:play
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
}
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() and provide that method an WriteObjectSpec. They should then attach the returned upload_id to the first message of each following call to Create. If there is an error or the connection is broken during the resumable Create(), the client should check the status of the Create() by calling QueryWriteStatus() and continue writing from the returned persisted_size. This may be less than the amount of data the client previously sent.
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.
type HmacKeyMetadataIterator ¶
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 ¶
func (it *HmacKeyMetadataIterator) Next() (*storagepb.HmacKeyMetadata, 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 (*HmacKeyMetadataIterator) PageInfo ¶
func (it *HmacKeyMetadataIterator) PageInfo() *iterator.PageInfo
PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
type NotificationIterator ¶
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 ¶
func (it *NotificationIterator) Next() (*storagepb.Notification, 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 (*NotificationIterator) PageInfo ¶
func (it *NotificationIterator) PageInfo() *iterator.PageInfo
PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
type ObjectIterator ¶
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 ¶
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 ¶
func (it *ObjectIterator) PageInfo() *iterator.PageInfo
PageInfo supports pagination. See the google.golang.org/api/iterator package for details.
Source Files ¶
doc.go storage_client.go
- Version
- v1.20.0
- Published
- Feb 4, 2022
- Platform
- js/wasm
- Imports
- 19 packages
- Last checked
- 24 minutes ago –
Tools for package owners.