aenvs/internal/storage/storage.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
}