Currently tested: List, Get, Remove
This commit is contained in:
36
server/s3/ioutils.go
Normal file
36
server/s3/ioutils.go
Normal file
@ -0,0 +1,36 @@
|
||||
// Credits: https://pkg.go.dev/github.com/rclone/rclone@v1.65.2/cmd/serve/s3
|
||||
// Package s3 implements a fake s3 server for alist
|
||||
package s3
|
||||
|
||||
import "io"
|
||||
|
||||
type noOpReadCloser struct{}
|
||||
|
||||
type readerWithCloser struct {
|
||||
io.Reader
|
||||
closer func() error
|
||||
}
|
||||
|
||||
var _ io.ReadCloser = &readerWithCloser{}
|
||||
|
||||
func (d noOpReadCloser) Read(b []byte) (n int, err error) {
|
||||
return 0, io.EOF
|
||||
}
|
||||
|
||||
func (d noOpReadCloser) Close() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func limitReadCloser(rdr io.Reader, closer func() error, sz int64) io.ReadCloser {
|
||||
return &readerWithCloser{
|
||||
Reader: io.LimitReader(rdr, sz),
|
||||
closer: closer,
|
||||
}
|
||||
}
|
||||
|
||||
func (rwc *readerWithCloser) Close() error {
|
||||
if rwc.closer != nil {
|
||||
return rwc.closer()
|
||||
}
|
||||
return nil
|
||||
}
|
Reference in New Issue
Block a user