27 lines
659 B
Go
27 lines
659 B
Go
package system
|
|
|
|
import (
|
|
"context"
|
|
"io"
|
|
"time"
|
|
)
|
|
|
|
type StoredFile struct {
|
|
Name string
|
|
Path string
|
|
URL string
|
|
Size int64
|
|
LastModified time.Time
|
|
ContentType string
|
|
}
|
|
|
|
// FileStorage owns the persistence boundary for uploaded files.
|
|
type FileStorage interface {
|
|
Put(context.Context, string, io.Reader) (*StoredFile, error)
|
|
Open(context.Context, string) (io.ReadCloser, error)
|
|
Delete(context.Context, string) error
|
|
Compose(context.Context, []string, string) (*StoredFile, string, error)
|
|
DeletePrefix(context.Context, string) error
|
|
List(context.Context, string, string, int) ([]*StoredFile, string, bool, error)
|
|
}
|