 Documentation
      ¶
      Documentation
      ¶
    
    
  
    
  
    Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
	// Backend: "local" or "s3"
	Backend string
	// Local settings
	LocalBaseDir       string // filesystem base dir, e.g. ./uploads
	LocalPublicBaseURL string // public base URL/prefix served by the API, e.g. /uploads
	// S3 settings (also compatible with MinIO)
	S3Endpoint        string // optional; if empty uses AWS SDK endpoint resolution or MinIO endpoint
	S3Region          string
	S3Bucket          string
	S3AccessKeyID     string
	S3SecretAccessKey string
	S3UseSSL          bool
	S3ForcePathStyle  bool
	S3PublicBaseURL   string // optional CDN/CloudFront domain; if set, used to construct public URL
}
    Config is a generic storage configuration. Concrete backends may use a subset.
type LocalStorage ¶
type LocalStorage struct {
	// contains filtered or unexported fields
}
    func NewLocalStorage ¶
func NewLocalStorage(baseDir, publicBaseURL string) *LocalStorage
type S3Storage ¶
type S3Storage struct {
	// contains filtered or unexported fields
}
    func NewS3Storage ¶
type Storage ¶
type Storage interface {
	// Save stores content at the provided key (e.g., "profile/filename.jpg") and returns a public URL.
	Save(ctx context.Context, key string, r io.Reader, size int64, contentType string) (publicURL string, err error)
	// Delete removes an object at key. Should be idempotent.
	Delete(ctx context.Context, key string) error
}
    Storage abstracts upload/delete operations and returns a public URL for saved objects. Implementations must be safe for concurrent use.
 Click to show internal directories. 
   Click to hide internal directories.