github.com/cvmfs/docker-graphdriver@v0.0.0-20181206110523-155ec6df0521/docker2cvmfs/lib/config.go (about) 1 package lib 2 3 import ( 4 "io/ioutil" 5 "log" 6 "net/http" 7 "strings" 8 ) 9 10 func getBlob(url string) ([]byte, error) { 11 req, _ := http.NewRequest("GET", url, nil) 12 req.Header.Add("Authorization", "Bearer "+token) 13 14 var client http.Client 15 resp, err := client.Do(req) 16 if err != nil { 17 log.Println("Error in making the request to the registry.") 18 return nil, err 19 } 20 21 body, err := ioutil.ReadAll(resp.Body) 22 if err != nil { 23 log.Println("Error in reading the request.") 24 return nil, err 25 } 26 resp.Body.Close() 27 28 return body, nil 29 } 30 31 func getConfig(url string) ([]byte, error) { 32 return getBlob(url) 33 } 34 35 func GetConfig(dockerRegistryUrl string, imageReference string) (string, error) { 36 manifest, _ := GetManifest(dockerRegistryUrl, imageReference) 37 repo := strings.Split(imageReference, ":")[0] 38 39 config_digest := manifest.Config.Digest 40 url := dockerRegistryUrl + "/" + repo + "/blobs/" + config_digest 41 42 resp, err := getConfig(url) 43 44 return string(resp), err 45 }