Vendor aws-sdk-go (dep ensure) (#178)
This commit is contained in:
70
vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/helper.go
generated
vendored
Normal file
70
vendor/github.com/aws/aws-sdk-go/service/s3/s3crypto/helper.go
generated
vendored
Normal file
@@ -0,0 +1,70 @@
|
||||
package s3crypto
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws/request"
|
||||
)
|
||||
|
||||
func getWriterStore(req *request.Request, path string, useTempFile bool) (io.ReadWriteSeeker, error) {
|
||||
if !useTempFile {
|
||||
return &bytesReadWriteSeeker{}, nil
|
||||
}
|
||||
// Create temp file to be used later for calculating the SHA256 header
|
||||
f, err := ioutil.TempFile(path, "")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
req.Handlers.Send.PushBack(func(r *request.Request) {
|
||||
// Close the temp file and cleanup
|
||||
f.Close()
|
||||
fpath := filepath.Join(path, f.Name())
|
||||
os.Remove(fpath)
|
||||
})
|
||||
return f, nil
|
||||
}
|
||||
|
||||
type bytesReadWriteSeeker struct {
|
||||
buf []byte
|
||||
i int64
|
||||
}
|
||||
|
||||
// Copied from Go stdlib bytes.Reader
|
||||
func (ws *bytesReadWriteSeeker) Read(b []byte) (int, error) {
|
||||
if ws.i >= int64(len(ws.buf)) {
|
||||
return 0, io.EOF
|
||||
}
|
||||
n := copy(b, ws.buf[ws.i:])
|
||||
ws.i += int64(n)
|
||||
return n, nil
|
||||
}
|
||||
|
||||
func (ws *bytesReadWriteSeeker) Write(b []byte) (int, error) {
|
||||
ws.buf = append(ws.buf, b...)
|
||||
return len(b), nil
|
||||
}
|
||||
|
||||
// Copied from Go stdlib bytes.Reader
|
||||
func (ws *bytesReadWriteSeeker) Seek(offset int64, whence int) (int64, error) {
|
||||
var abs int64
|
||||
switch whence {
|
||||
case 0:
|
||||
abs = offset
|
||||
case 1:
|
||||
abs = int64(ws.i) + offset
|
||||
case 2:
|
||||
abs = int64(len(ws.buf)) + offset
|
||||
default:
|
||||
return 0, errors.New("bytes.Reader.Seek: invalid whence")
|
||||
}
|
||||
if abs < 0 {
|
||||
return 0, errors.New("bytes.Reader.Seek: negative position")
|
||||
}
|
||||
ws.i = abs
|
||||
return abs, nil
|
||||
}
|
||||
Reference in New Issue
Block a user