cmd/upload: update to new Google Cloud Storage API
Change-Id: I8411c688f6aee17a2ebe46ff7081b32c5a0715f4
Reviewed-on: https://go-review.googlesource.com/17314
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
diff --git a/cmd/upload/upload.go b/cmd/upload/upload.go
index 4570be8..e67254b 100644
--- a/cmd/upload/upload.go
+++ b/cmd/upload/upload.go
@@ -25,7 +25,6 @@
"golang.org/x/build/auth"
"golang.org/x/build/envutil"
"golang.org/x/net/context"
- "golang.org/x/oauth2"
"google.golang.org/cloud"
"google.golang.org/cloud/storage"
)
@@ -72,17 +71,21 @@
if err != nil {
log.Fatalf("Failed to get an OAuth2 token source: %v", err)
}
- httpClient := oauth2.NewClient(oauth2.NoContext, ts)
- ctx := cloud.NewContext(proj, httpClient)
- if alreadyUploaded(ctx, bucket, object) {
+ ctx := context.Background()
+ storageClient, err := storage.NewClient(ctx, cloud.WithTokenSource(ts))
+ if err != nil {
+ log.Fatalf("storage.NewClient: %v", err)
+ }
+
+ if alreadyUploaded(storageClient, bucket, object) {
if *verbose {
log.Printf("Already uploaded.")
}
return
}
- w := storage.NewWriter(ctx, bucket, object)
+ w := storageClient.Bucket(bucket).Object(object).NewWriter(ctx)
// If you don't give the owners access, the web UI seems to
// have a bug and doesn't have access to see that it's public, so
// won't render the "Shared Publicly" link. So we do that, even
@@ -189,11 +192,11 @@
// alreadyUploaded reports whether *file has already been uploaded and the correct contents
// are on cloud storage already.
-func alreadyUploaded(ctx context.Context, bucket, object string) bool {
+func alreadyUploaded(storageClient *storage.Client, bucket, object string) bool {
if *file == "-" {
return false // don't know.
}
- o, err := storage.StatObject(ctx, bucket, object)
+ o, err := storageClient.Bucket(bucket).Object(object).Attrs(context.Background())
if err == storage.ErrObjectNotExist {
return false
}