Skip to content
This repository has been archived by the owner on Nov 23, 2019. It is now read-only.

file content from CopyFromContainer #308

Open
SDkie opened this issue Jul 8, 2016 · 1 comment
Open

file content from CopyFromContainer #308

SDkie opened this issue Jul 8, 2016 · 1 comment

Comments

@SDkie
Copy link

SDkie commented Jul 8, 2016

If I write the content to a file its adding some header and footer to the file.
What is the issue?

Sample code

reader, _, err = CopyFromContainer(context.TODO(), containerId, path)
f, err = os.Create("tempFile")
n, err = io.Copy(f, reader)
@prayas-stha
Copy link

prayas-stha commented Feb 28, 2017

It is because its the tar file in the reader.

import("archive/tar")
....
reader, _, err = CopyFromContainer(context.TODO(), containerId, path)
if err != nil{
                log.Println(err.Error())
}
tr := tar.NewReader(reader)
for {
                // hdr gives you the header of the tar file
                hdr, err := tr.Next()
                if err == io.EOF {
                        // end of tar archive
                        break
                }
                if err != nil {
                        log.Fatalln(err)
                }
                buf := new(bytes.Buffer)
                buf.ReadFrom(tr)
                
                // You can use this wholeContent to create new file
                wholeContent := buf.String()
                
                fmt.Println("Whole of the string of ", hdr.Name ," is ",wholeContent)
                
}

This gives you the content, you can use to create files on your own. Look into https://golang.org/pkg/archive/tar/#pkg-examples

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants