Documentation
¶
Index ¶
- type DocumentConfig
- type File
- type FileProcessor
- func (fp *FileProcessor) GenerateThumbnail(ctx context.Context, file *File) error
- func (fp *FileProcessor) ProcessDocument(ctx context.Context, file *File, config *DocumentConfig) error
- func (fp *FileProcessor) ProcessImage(ctx context.Context, file *File, config *ImageConfig) error
- func (fp *FileProcessor) ProcessVideo(ctx context.Context, file *File, config *VideoConfig) error
- type FileSystemStorage
- func (fs *FileSystemStorage) Delete(ctx context.Context, id string) error
- func (fs *FileSystemStorage) Get(ctx context.Context, id string) (*File, error)
- func (fs *FileSystemStorage) GetContent(ctx context.Context, path string) (io.ReadCloser, error)
- func (fs *FileSystemStorage) GetURL(ctx context.Context, path string) (string, error)
- func (fs *FileSystemStorage) List(ctx context.Context, userID, tenantID string) ([]*File, error)
- func (fs *FileSystemStorage) Store(ctx context.Context, file *File, content io.Reader) error
- func (fs *FileSystemStorage) UpdateMetadata(ctx context.Context, id string, metadata map[string]string) error
- type ImageConfig
- type Logger
- type Manager
- func (m *Manager) DeleteFile(ctx context.Context, id string) error
- func (m *Manager) GetFile(ctx context.Context, id string) (*File, error)
- func (m *Manager) GetFileContent(ctx context.Context, id string) (io.ReadCloser, error)
- func (m *Manager) ListFiles(ctx context.Context, userID, tenantID string) ([]*File, error)
- func (m *Manager) UpdateFileMetadata(ctx context.Context, id string, metadata map[string]string) error
- func (m *Manager) UploadFile(ctx context.Context, header *multipart.FileHeader, uploadedBy, tenantID string, ...) (*File, error)
- type Processor
- type Storage
- type UploadConfig
- type VideoConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DocumentConfig ¶
type DocumentConfig struct {
EnableOCR bool `json:"enable_ocr"`
EnablePreview bool `json:"enable_preview"`
SupportedFormats []string `json:"supported_formats"`
}
DocumentConfig represents document processing configuration
type File ¶
type File struct {
ID string `json:"id"`
Filename string `json:"filename"`
OriginalName string `json:"original_name"`
Size int64 `json:"size"`
MimeType string `json:"mime_type"`
Extension string `json:"extension"`
Path string `json:"path"`
URL string `json:"url"`
Hash string `json:"hash"`
UploadedBy string `json:"uploaded_by"`
TenantID string `json:"tenant_id"`
IsPublic bool `json:"is_public"`
Metadata map[string]string `json:"metadata"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
File represents an uploaded file
type FileProcessor ¶
type FileProcessor struct {
// contains filtered or unexported fields
}
FileProcessor implements media processing
func NewFileProcessor ¶
func NewFileProcessor(logger Logger) *FileProcessor
NewFileProcessor creates a new file processor
func (*FileProcessor) GenerateThumbnail ¶
func (fp *FileProcessor) GenerateThumbnail(ctx context.Context, file *File) error
GenerateThumbnail generates thumbnail for media files
func (*FileProcessor) ProcessDocument ¶
func (fp *FileProcessor) ProcessDocument(ctx context.Context, file *File, config *DocumentConfig) error
ProcessDocument processes document files
func (*FileProcessor) ProcessImage ¶
func (fp *FileProcessor) ProcessImage(ctx context.Context, file *File, config *ImageConfig) error
ProcessImage processes image files
func (*FileProcessor) ProcessVideo ¶
func (fp *FileProcessor) ProcessVideo(ctx context.Context, file *File, config *VideoConfig) error
ProcessVideo processes video files
type FileSystemStorage ¶
type FileSystemStorage struct {
// contains filtered or unexported fields
}
FileSystemStorage implements file system storage
func NewFileSystemStorage ¶
func NewFileSystemStorage(basePath, publicURL string, logger Logger) *FileSystemStorage
NewFileSystemStorage creates new file system storage
func (*FileSystemStorage) Delete ¶
func (fs *FileSystemStorage) Delete(ctx context.Context, id string) error
Delete deletes file
func (*FileSystemStorage) GetContent ¶
func (fs *FileSystemStorage) GetContent(ctx context.Context, path string) (io.ReadCloser, error)
GetContent returns file content
func (*FileSystemStorage) UpdateMetadata ¶
func (fs *FileSystemStorage) UpdateMetadata(ctx context.Context, id string, metadata map[string]string) error
UpdateMetadata updates file metadata
type ImageConfig ¶
type ImageConfig struct {
EnableResize bool `json:"enable_resize"`
EnableThumbnail bool `json:"enable_thumbnail"`
MaxWidth int `json:"max_width"`
MaxHeight int `json:"max_height"`
ThumbnailSize int `json:"thumbnail_size"`
Quality int `json:"quality"`
Formats []string `json:"formats"`
}
ImageConfig represents image processing configuration
type Logger ¶
type Logger interface {
Info(msg string, fields ...interface{})
Error(msg string, fields ...interface{})
Warn(msg string, fields ...interface{})
Debug(msg string, fields ...interface{})
}
Logger interface for logging
type Manager ¶
type Manager struct {
// contains filtered or unexported fields
}
Manager manages file uploads
func NewManager ¶
func NewManager(storage Storage, processor Processor, logger Logger, config UploadConfig) *Manager
NewManager creates a new upload manager
func (*Manager) DeleteFile ¶
DeleteFile deletes a file
func (*Manager) GetFileContent ¶
GetFileContent returns file content
type Processor ¶
type Processor interface {
ProcessImage(ctx context.Context, file *File, config *ImageConfig) error
ProcessVideo(ctx context.Context, file *File, config *VideoConfig) error
ProcessDocument(ctx context.Context, file *File, config *DocumentConfig) error
GenerateThumbnail(ctx context.Context, file *File) error
}
Processor interface for media processing
type Storage ¶
type Storage interface {
// File operations
Store(ctx context.Context, file *File, content io.Reader) error
Get(ctx context.Context, id string) (*File, error)
Delete(ctx context.Context, id string) error
List(ctx context.Context, userID, tenantID string) ([]*File, error)
// Content operations
GetContent(ctx context.Context, path string) (io.ReadCloser, error)
GetURL(ctx context.Context, path string) (string, error)
// Metadata operations
UpdateMetadata(ctx context.Context, id string, metadata map[string]string) error
}
Storage interface for file storage
type UploadConfig ¶
type UploadConfig struct {
MaxFileSize int64 `json:"max_file_size"`
AllowedTypes []string `json:"allowed_types"`
AllowedExts []string `json:"allowed_extensions"`
StoragePath string `json:"storage_path"`
PublicURL string `json:"public_url"`
EnableProcessing bool `json:"enable_processing"`
ImageConfig *ImageConfig `json:"image_config"`
VideoConfig *VideoConfig `json:"video_config"`
DocumentConfig *DocumentConfig `json:"document_config"`
}
UploadConfig represents upload configuration