heroku / docker-registry-client

A Go API client for the v2 Docker Registry API
BSD 3-Clause "New" or "Revised" License
297 stars 225 forks source link

PUT manifest failed: Got http: ContentLength=528 with Body length 0 #81

Open fanux opened 3 years ago

fanux commented 3 years ago

I want using this client to sync my image, But:

        manifest, err := c.SrcHub.ManifestV2(repo, tag)  // get manifest from src registry
    for _, layer := range manifest.Layers {
        digest := layer.Digest
        exists, err := c.DstHub.HasBlob(repo, digest)
                 ...
        reader, err := c.SrcHub.DownloadBlob(repo, digest)
                ...
        err = c.DstHub.UploadBlob(repo, digest, reader)
    }

    _, b, _ := manifest.Payload()
    fmt.Printf("manifet payload : %s", b)   // make sure the payload is not null
    err = c.DstHub.PutManifest(drepo, dtag, manifest)  // put manifest to destinate registry failed
        ...
    return nil

Put "https://index.docker.io/v2/fanux/alpinetest/manifests/latest": http: ContentLength=528 with Body length 0