Skip to content

Instantly share code, notes, and snippets.

@sinmetal
Created June 24, 2016 05:32
Show Gist options
  • Save sinmetal/037318ddb0fbab449c54eb063c02a995 to your computer and use it in GitHub Desktop.
Save sinmetal/037318ddb0fbab449c54eb063c02a995 to your computer and use it in GitHub Desktop.
example google.DefaultClient()
package gcs_sample
import (
"net/http"
"fmt"
"google.golang.org/appengine"
"google.golang.org/appengine/log"
"golang.org/x/oauth2/google"
storage "google.golang.org/api/storage/v1"
)
func init() {
http.HandleFunc("/", handler)
}
func handler(w http.ResponseWriter, r *http.Request) {
c := appengine.NewContext(r)
projectID := "cp300demo1"
bucketName := "hoge"
client, err := google.DefaultClient(c, storage.DevstorageFullControlScope)
if err != nil {
log.Errorf(c, "Unable to get default client: %v", err)
}
service, err := storage.New(client)
if err != nil {
log.Errorf(c, "Unable to create storage service: %v", err)
}
// If the bucket already exists and the user has access, warn the user, but don't try to create it.
if _, err := service.Buckets.Get(bucketName).Do(); err == nil {
fmt.Printf("Bucket %s already exists - skipping buckets.insert call.", bucketName)
} else {
// Create a bucket.
if res, err := service.Buckets.Insert(projectID, &storage.Bucket{Name: bucketName}).Do(); err == nil {
fmt.Printf("Created bucket %v at location %v\n\n", res.Name, res.SelfLink)
} else {
log.Errorf(c, "Failed creating bucket %s: %v", bucketName, err)
}
}
// List all buckets in a project.
if res, err := service.Buckets.List(projectID).Do(); err == nil {
fmt.Println("Buckets:")
for _, item := range res.Items {
fmt.Fprintf(w, "%s\n", item.Id)
}
fmt.Println()
} else {
log.Errorf(c, "Buckets.List failed: %v", err)
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment