31 lines
843 B
Go
31 lines
843 B
Go
package storage
|
|
|
|
import (
|
|
"context"
|
|
"io"
|
|
)
|
|
|
|
// Storage interface for cloud storage operations
|
|
type Storage interface {
|
|
// Upload uploads data to the specified key
|
|
Upload(ctx context.Context, key string, data io.Reader, size int64) error
|
|
|
|
// Download downloads data from the specified key
|
|
Download(ctx context.Context, key string) (io.ReadCloser, error)
|
|
|
|
// Delete deletes the specified key
|
|
Delete(ctx context.Context, key string) error
|
|
|
|
// Exists checks if the key exists
|
|
Exists(ctx context.Context, key string) (bool, error)
|
|
|
|
// List lists all keys with the given prefix
|
|
List(ctx context.Context, prefix string) ([]string, error)
|
|
|
|
// ListProjects returns all project directories
|
|
ListProjects(ctx context.Context) ([]string, error)
|
|
|
|
// TestConnection tests the connection to storage
|
|
TestConnection(ctx context.Context) error
|
|
}
|