Diffstat (limited to 'internal/client/input/input_client_interface.go')
| -rw-r--r-- | internal/client/input/input_client_interface.go | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/internal/client/input/input_client_interface.go b/internal/client/input/input_client_interface.go new file mode 100644 index 0000000..dca64db --- /dev/null +++ b/internal/client/input/input_client_interface.go @@ -0,0 +1,32 @@ +package input + +import ( + "io" + "time" + + "github.com/SayaAndy/saya-today-thumbnail-generator/config" +) + +type InputClient interface { + Scan() ([]string, error) + ReadMetadata(string) (*MetadataStruct, error) + GetReader(string) (io.ReadCloser, error) + ID(path string) string +} + +type MetadataStruct struct { + Name string + StorageType string + Hash string + ContentType string + FirstCreated time.Time + LastModified time.Time + Size int64 + Misc map[string]string +} + +var NewInputClientMap = map[string]func(cfg *config.InputConfig) (InputClient, error){ + "b2": NewB2InputClient, + "s3": NewS3InputClient, + "local-unix": NewLocalUnixInputClient, +} |