Esempio n. 1
0
func (sto *s3Storage) ReceiveBlob(b blob.Ref, source io.Reader) (sr blob.SizedRef, err error) {
	slurper := newAmazonSlurper(b)
	defer slurper.Cleanup()

	size, err := io.Copy(slurper, source)
	if err != nil {
		return sr, err
	}

	err = sto.s3Client.PutObject(b.String(), sto.bucket, slurper.md5, size, slurper)
	if err != nil {
		return sr, err
	}
	b.SetHash(slurper.md5)
	return blob.SizedRef{Ref: b, Size: uint32(size)}, nil
}