@@ -12,7 +12,12 @@ import (
12
12
"github.com/aws/aws-sdk-go/service/s3"
13
13
)
14
14
15
- func handler (w http.ResponseWriter , r * http.Request , svc * s3.S3 , bucket string ) {
15
+ var (
16
+ s3Service * s3.S3
17
+ bucketName string
18
+ )
19
+
20
+ func handler (w http.ResponseWriter , r * http.Request ) {
16
21
defer r .Body .Close ()
17
22
18
23
key := r .URL .Path
@@ -23,10 +28,10 @@ func handler(w http.ResponseWriter, r *http.Request, svc *s3.S3, bucket string)
23
28
}
24
29
25
30
input := & s3.GetObjectInput {
26
- Bucket : aws .String (bucket ),
31
+ Bucket : aws .String (bucketName ),
27
32
Key : aws .String (key ),
28
33
}
29
- obj , err := svc .GetObject (input )
34
+ obj , err := s3Service .GetObject (input )
30
35
if err != nil {
31
36
log .Printf ("Error while getting %q: %s\n " , key , err .Error ())
32
37
w .WriteHeader (http .StatusForbidden )
@@ -53,21 +58,19 @@ func envOrDefault(name string, defaultValue string) string {
53
58
func main () {
54
59
region := envOrDefault ("S3PROXY_REGION" , "eu-central-1" )
55
60
port := envOrDefault ("S3PROXY_PORT" , "3000" )
56
- bucket : = envOrDefault ("S3PROXY_BUCKET" , "" )
61
+ bucketName = envOrDefault ("S3PROXY_BUCKET" , "" )
57
62
58
- if bucket == "" {
63
+ if bucketName == "" {
59
64
log .Fatal ("You need to provide S3PROXY_BUCKET" )
60
65
}
61
66
62
67
sess := session .Must (session .NewSession (& aws.Config {
63
68
Region : aws .String (region ),
64
69
}))
65
- svc : = s3 .New (sess )
70
+ s3Service = s3 .New (sess )
66
71
67
- http .HandleFunc ("/" , func (w http.ResponseWriter , r * http.Request ) {
68
- handler (w , r , svc , bucket )
69
- })
72
+ http .HandleFunc ("/" , handler )
70
73
71
- fmt .Printf ("Listening on :%s \n " , port )
74
+ log .Printf ("Listening on :%s \n " , port )
72
75
log .Fatal (http .ListenAndServe (fmt .Sprintf (":%s" , port ), nil ))
73
76
}
0 commit comments