8000 Merge pull request #7 from gbitten/gbitten · Abhicodeitout/GolangTraining@01f62a3 · GitHub
[go: up one dir, main page]

Skip to content
8000

Commit 01f62a3

Browse files
committed
Merge pull request GoesToEleven#7 from gbitten/gbitten
Adjust storage.go files for recent Storage package update
2 parents e9eb3c8 + c41e951 commit 01f62a3

File tree

3 files changed

+29
-105
lines changed

3 files changed

+29
-105
lines changed

59_appengine-GCS-storage/02_NewWriter_JSON-auth/storage.go

Lines changed: 5 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -3,60 +3,31 @@ package storage
33
import (
44
"io"
55
"net/http"
6-
7-
"golang.org/x/oauth2/google"
8-
9-
"golang.org/x/net/context"
10-
"golang.org/x/oauth2/jwt"
116
"google.golang.org/appengine"
12-
"google.golang.org/cloud"
137
"google.golang.org/cloud/storage"
14-
"io/ioutil"
158
)
169

1710
const gcsBucket = "learning-1130-bucket-01"
18-
const aeId = "learning-1130"
19-
20-
var conf *jwt.Config
2111

2212
func init() {
2313
http.HandleFunc("/put", handlePut)
24-
25-
jsonKey, err := ioutil.ReadFile("gcs.xxjson")
26-
if err != nil {
27-
panic("Couldn't read json key")
28-
}
29-
30-
conf, err = google.JWTConfigFromJSON(
31-
jsonKey,
32-
storage.ScopeFullControl,
33-
)
34-
if err != nil {
35-
panic("Couldn't get *jwt.Config")
36-
}
37-
38-
}
39-
40-
func getCloudContext(req *http.Request) (context.Context, error) {
41-
ctx := appengine.NewContext(req)
42-
hc := conf.Client(ctx)
43-
return cloud.NewContext(aeId, hc), nil
4414
}
4515

4616
func handlePut(res http.ResponseWriter, req *http.Request) {
4717

48-
cctx, err := getCloudContext(req)
18+
ctx := appengine.NewContext(req)
19+
client, err := storage.NewClient(ctx)
4920
if err != nil {
50-
http.Error(res, "ERROR GETTING CCTX: "+err.Error(), 500)
21+
http.Error(res, "ERROR CREATING NEW CLIENT: "+err.Error(), 500)
5122
return
5223
}
53-
54-
writer := storage.NewWriter(cctx, gcsBucket, "myOffice.txt")
24+
writer := client.Bucket(gcsBucket).Object("myOffice.txt").NewWriter(ctx)
5525
writer.ContentType = "text/plain"
5626
io.WriteString(writer, "in my office")
5727
err = writer.Close()
5828
if err != nil {
5929
http.Error(res, "ERROR WRITING TO BUCKET: "+err.Error(), 500)
6030
return
6131
}
32+
client.Close()
6233
}

60_movie-website/02_image-upload-GCS/storage.go

Lines changed: 18 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -2,42 +2,19 @@ package movieinfo
22

33
import (
44
"io"
5-
65
"golang.org/x/net/context"
7-
"golang.org/x/oauth2/google"
8-
"google.golang.org/appengine/log"
9-
"google.golang.org/cloud"
106
"google.golang.org/cloud/storage"
11-
"io/ioutil"
127
)
138

149
const gcsBucket = "learning-1130-bucket-01"
15-
const aeId = "learning-1130"
16-
17-
func getCloudContext(ctx context.Context) context.Context {
18-
jsonKey, err := ioutil.ReadFile("gcs.xxjson")
19-
if err != nil {
20-
log.Errorf(ctx, "%v", err)
21-
return nil
22-
}
2310

24-
conf, err := google.JWTConfigFromJSON(
25-
jsonKey,
26-
storage.ScopeFullControl,
27-
)
11+
func putFile(ctx context.Context, name string, rdr io.Reader) error {
12+
client, err := storage.NewClient(ctx)
2813
if err != nil {
29-
log.Errorf(ctx, "%v", err)
30-
return nil
14+
return err
3115
}
32-
33-
hc := conf.Client(ctx)
34-
return cloud.NewContext(aeId, hc)
35-
}
36-
37 9E12 -
func putFile(ctx context.Context, name string, rdr io.Reader) error {
38-
cctx := getCloudContext(ctx)
39-
40-
writer := storage.NewWriter(cctx, gcsBucket, name)
16+
defer client.Close()
17+
writer := client.Bucket(gcsBucket).Object(name).NewWriter(ctx)
4118
writer.ACL = []storage.ACLRule{
4219
{storage.AllUsers, storage.RoleReader},
4320
}
@@ -46,17 +23,25 @@ func putFile(ctx context.Context, name string, rdr io.Reader) error {
4623
}
4724

4825
func getFile(ctx context.Context, name string) (io.ReadCloser, error) {
49-
cctx := getCloudContext(ctx)
26+
client, err := storage.NewClient(ctx)
27+
if err != nil {
28+
return nil, err
29+
}
30+
defer client.Close()
5031

51-
return storage.NewReader(cctx, gcsBucket, name)
32+
return client.Bucket(gcsBucket).Object(name).NewReader(ctx)
5233
}
5334

5435
func getFileLink(ctx context.Context, name string) (string, error) {
55-
cctx := getCloudContext(ctx)
36+
client, err := storage.NewClient(ctx)
37+
if err != nil {
38+
return "", err
39+
}
40+
defer client.Close()
5641

57-
obj, err := storage.StatObject(cctx, gcsBucket, name)
42+
attrs, err := client.Bucket(gcsBucket).Object(name).Attrs(ctx)
5843
if err != nil {
5944
return "", err
6045
}
61-
return obj.MediaLink, nil
46+
return attrs.MediaLink, nil
6247
}

63_GCS-filebrowser/storage.go

Lines changed: 6 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -2,49 +2,16 @@ package filebrowser
22

33
import (
44
"io"
5-
"io/ioutil"
6-
"net/http"
7-
85
"golang.org/x/net/context"
9-
"golang.org/x/oauth2"
10-
"golang.org/x/oauth2/google"
11-
"google.golang.org/appengine"
12-
"google.golang.org/appengine/urlfetch"
13-
"google.golang.org/cloud"
146
"google.golang.org/cloud/storage"
157
)
168

17-
func getCloudContext(aeCtx context.Context) (context.Context, error) {
18-
data, err := ioutil.ReadFile("gcs.xxjson")
19-
if err != nil {
20-
return nil, err
21-
}
22-
23-
conf, err := google.JWTConfigFromJSON(
24-
data,
25-
storage.ScopeFullControl,
26-
)
27-
if err != nil {
28-
return nil, err
29-
}
30-
31-
tokenSource := conf.TokenSource(aeCtx)
32-
33-
hc := &http.Client{
34-
Transport: &oauth2.Transport{
35-
Source: tokenSource,
36-
Base: &urlfetch.Transport{Context: aeCtx},
37-
},
38-
}
39-
40-
return cloud.NewContext(appengine.AppID(aeCtx), hc), nil
41-
}
42-
439
func listBucket(ctx context.Context, bucketName, folder string) ([]string, []string, error) {
44-
cloudContext, err := getCloudContext(ctx)
10+
client, err := storage.NewClient(ctx)
4511
if err != nil {
4612
return nil, nil, err
4713
}
14+
defer client.Close()
4815

4916
var files, folders []string
5017

@@ -53,7 +20,7 @@ func listBucket(ctx context.Context, bucketName, folder string) ([]string, []str
5320
Prefix: folder,
5421
}
5522
// objs is *storage.Objects
56-
objs, err := storage.ListObjects(cloudContext, bucketName, query)
23+
objs, err := client.Bucket(bucketName).List(ctx, query)
5724
if err != nil {
5825
return nil, nil, err
5926
}
@@ -70,11 +37,12 @@ func listBucket(ctx context.Context, bucketName, folder string) ([]string, []str
7037
}
7138

7239
func putFile(ctx context.Context, bucketName, fileName string, rdr io.Reader) error {
73-
cctx, err := getCloudContext(ctx)
40+
client, err := storage.NewClient(ctx)
7441
if err != nil {
7542
return err
7643
}
77-
writer := storage.NewWriter(cctx, bucketName, fileName)
44+
defer client.Close()
45+
writer := client.Bucket(bucketName).Object(fileName).NewWriter(ctx)
7846
writer.ACL = []storage.ACLRule{
7947
{storage.AllUsers, storage.RoleReader},
8048
}

0 commit comments

Comments
 (0)
0