cloud

package
v0.0.0-...-c5af384 Latest Latest
Warning

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

Go to latest
Published: Feb 13, 2015 License: Apache-2.0, Apache-2.0 Imports: 3 Imported by: 0

README

Google Cloud for Go

Build Status

Go packages for Google Cloud Platform services. Supported APIs include:

  • Google Cloud Datastore
  • Google Cloud Storage
  • Google Cloud Pub/Sub
  • Google Cloud Container Engine
import "google.golang.org/cloud"

Note: This package is a work-in-progress, and may occasionally make backwards-incompatible changes.

Documentation and examples are available at https://godoc.org/google.golang.org/cloud.

Authorization

Authorization, throughout the package, is delegated to the godoc.org/golang.org/x/oauth2. Refer to the godoc documentation for examples on using oauth2 with the Cloud package.

Google Cloud Datastore

Google Cloud Datastore (docs) is a fully managed, schemaless database for storing non-relational data. Cloud Datastore automatically scales with your users and supports ACID transactions, high availability of reads and writes, strong consistency for reads and ancestor queries, and eventual consistency for all other queries.

Follow the activation instructions to use the Google Cloud Datastore API with your project.

https://godoc.org/google.golang.org/cloud/datastore

type Post struct {
	Title       string
	Body        string `datastore:",noindex"`
	PublishedAt time.Time
}
keys := []*datastore.Key{
	datastore.NewKey(ctx, "Post", "post1", 0, nil),
	datastore.NewKey(ctx, "Post", "post2", 0, nil),
}
posts := []*Post{
	{Title: "Post 1", Body: "...", PublishedAt: time.Now()},
	{Title: "Post 2", Body: "...", PublishedAt: time.Now()},
}
if _, err := datastore.PutMulti(ctx, keys, posts); err != nil {
	log.Println(err)
}

Google Cloud Storage

Google Cloud Storage (docs) allows you to store data on Google infrastructure with very high reliability, performance and availability, and can be used to distribute large data objects to users via direct download.

https://godoc.org/google.golang.org/cloud/storage

// Read the object1 from bucket.
rc, err := storage.NewReader(ctx, "bucket", "object1")
if err != nil {
	log.Fatal(err)
}
slurp, err := ioutil.ReadAll(rc)
rc.Close()
if err != nil {
	log.Fatal(err)
}

Google Cloud Pub/Sub (Alpha)

Google Cloud Pub/Sub is in Alpha status. As a result, it might change in backward-incompatible ways and is not recommended for production use. It is not subject to any SLA or deprecation policy.

Google Cloud Pub/Sub (docs) allows you to connect your services with reliable, many-to-many, asynchronous messaging hosted on Google's infrastructure. Cloud Pub/Sub automatically scales as you need it and provides a foundation for building your own robust, global services.

https://godoc.org/google.golang.org/cloud/pubsub

// Publish "hello world" on topic1.
msgIDs, err := pubsub.Publish(ctx, "topic1", &pubsub.Message{
	Data: []byte("hello world"),
})
if err != nil {
	log.Println(err)
}
// Pull messages via subscription1.
msgs, err := pubsub.Pull(ctx, "subscription1", 1)
if err != nil {
	log.Println(err)
}

Contributing

Contributions are welcome. Please, see the CONTRIBUTING document for details. We're using Gerrit for our code reviews. Please don't open pull requests against this repo, new pull requests will be automatically closed.

Documentation

Overview

Package cloud contains Google Cloud Platform APIs related types and common functions.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewContext

func NewContext(projID string, c *http.Client) context.Context

NewContext returns a new context that uses the provided http.Client. Provided http.Client is responsible to authorize and authenticate the requests made to the Google Cloud APIs. It mutates the client's original Transport to append the cloud package's user-agent to the outgoing requests. You can obtain the project ID from the Google Developers Console, https://console.developers.google.com.

func WithContext

func WithContext(parent context.Context, projID string, c *http.Client) context.Context

WithContext returns a new context in a similar way NewContext does, but initiates the new context with the specified parent.

Types

This section is empty.

Directories

Path Synopsis
compute
metadata
Package metadata provides access to Google Compute Engine (GCE) metadata and API service accounts.
Package metadata provides access to Google Compute Engine (GCE) metadata and API service accounts.
Package container contains a Google Container Engine client.
Package container contains a Google Container Engine client.
Package datastore contains a Google Cloud Datastore client.
Package datastore contains a Google Cloud Datastore client.
examples
pubsub/cmdline
Package main contains a simple command line tool for Cloud Pub/Sub Cloud Pub/Sub docs: https://cloud.google.com/pubsub/docs
Package main contains a simple command line tool for Cloud Pub/Sub Cloud Pub/Sub docs: https://cloud.google.com/pubsub/docs
storage/appenginevm
Package gcsdemo is an example Managed VM app using the Google Cloud Storage API.
Package gcsdemo is an example Managed VM app using the Google Cloud Storage API.
Package internal provides support for the cloud packages.
Package internal provides support for the cloud packages.
datastore
Package pb is a generated protocol buffer package.
Package pb is a generated protocol buffer package.
testutil
Package testutil contains helper functions for writing tests.
Package testutil contains helper functions for writing tests.
Package pubsub contains a Google Cloud Pub/Sub client.
Package pubsub contains a Google Cloud Pub/Sub client.
Package storage contains a Google Cloud Storage client.
Package storage contains a Google Cloud Storage client.

Jump to

Keyboard shortcuts

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