mirror of
https://github.com/minio/minio.git
synced 2024-12-26 07:05:55 -05:00
Seek to beginning for tempbuffer
This commit is contained in:
parent
da10fd5a83
commit
be768d01a2
@ -22,6 +22,8 @@ import (
|
||||
"encoding/gob"
|
||||
"errors"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"sync"
|
||||
|
||||
"github.com/minio-io/minio/pkg/storage/erasure"
|
||||
@ -206,26 +208,30 @@ func (donut *Donut) Write(gobHeader GobHeader, object io.Reader) error {
|
||||
BlockEnd: MagicINIM,
|
||||
}
|
||||
|
||||
var tempBuffer bytes.Buffer
|
||||
|
||||
tempBuffer, err := ioutil.TempFile(os.TempDir(), "minio-staging")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer os.Remove(tempBuffer.Name())
|
||||
// write header
|
||||
if err := donut.WriteBegin(&tempBuffer, donutFormat); err != nil {
|
||||
if err := donut.WriteBegin(tempBuffer, donutFormat); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// write data
|
||||
if err := donut.WriteData(&tempBuffer, donutFormat); err != nil {
|
||||
if err := donut.WriteData(tempBuffer, donutFormat); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// write footer crc
|
||||
if err := donut.WriteEnd(&tempBuffer, donutFormat); err != nil {
|
||||
if err := donut.WriteEnd(tempBuffer, donutFormat); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// write footer
|
||||
donut.file.Seek(0, 2)
|
||||
io.Copy(donut.file, &tempBuffer)
|
||||
tempBuffer.Seek(0, 0)
|
||||
io.Copy(donut.file, tempBuffer)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
@ -19,7 +19,6 @@ package v1
|
||||
import (
|
||||
"bytes"
|
||||
. "gopkg.in/check.v1"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"testing"
|
||||
@ -32,10 +31,11 @@ type MySuite struct{}
|
||||
var _ = Suite(&MySuite{})
|
||||
|
||||
func (s *MySuite) TestAPISuite(c *C) {
|
||||
var b io.ReadWriteSeeker
|
||||
//var b io.ReadWriteSeeker
|
||||
var o bytes.Buffer
|
||||
|
||||
b, err := ioutil.TempFile(os.TempDir(), "minio-donut-test")
|
||||
defer os.RemoveAll(b.Name())
|
||||
c.Assert(err, IsNil)
|
||||
|
||||
donut := New(b)
|
||||
|
Loading…
Reference in New Issue
Block a user