package store

import (
	"context"
	"github.com/minio/minio-go"
	"io"
	"net/http"
)

type Backend interface {
	Store(ctx context.Context, filename string, data io.Reader, size int64) (string, error)
	Get(ctx context.Context, fileName string) ([]byte, string, error)
	Delete(ctx context.Context, fileName string) error
	ComposeObject(ctx context.Context,pathS []string,filePath string) error
	RemoveObject(ctx context.Context,filePath string) error
	Stat(filename string) (minio.ObjectInfo, error)
}

type FileInfo interface {
	FullName() string
	Name() string
	Size() int64
	Hash() string
}

type Uploader interface {
	Upload(ctx context.Context, r *http.Request, key string) ([]FileInfo, error)
}
