Documentation
¶
Index ¶
- Constants
- Variables
- func Run(configFilePath *string)
- type ArchiveEndMetadata
- type ArchiveMetadata
- type Config
- type GateKeeper
- type Main
- type RecordingReport
- type RecordingUnit
- type Uploader
- type UploaderManager
- type UploaderResult
- type WebhookArchiveEndUploaded
- type WebhookArchiveUploaded
- type WebhookReportUploaded
Constants ¶
View Source
const ( DefaultLogDir = "." DefaultLogName = "sora-archive-uploader.jsonl" // megabytes DefaultLogRotateMaxSize = 200 DefaultLogRotateMaxBackups = 7 // days DefaultLogRotateMaxAge = 30 )
Variables ¶
View Source
var Version string
Functions ¶
Types ¶
type ArchiveEndMetadata ¶
type ArchiveMetadata ¶
type ArchiveMetadata struct { RecordingID string `json:"recording_id"` ChannelID string `json:"channel_id"` SessionID string `json:"session_id"` ClientID string `json:"client_id"` ConnectionID string `json:"connection_id"` FilePath string `json:"file_path"` Filename string `json:"filename"` MetadataFilePath string `json:"metadata_file_path"` MetadataFilename string `json:"metadata_filename"` }
type Config ¶
type Config struct { Debug bool `ini:"debug"` LogDir string `ini:"log_dir"` LogName string `ini:"log_name"` LogStdout bool `ini:"log_stdout"` LogRotateMaxSize int `ini:"log_rotate_max_size"` LogRotateMaxBackups int `ini:"log_rotate_max_backups"` LogRotateMaxAge int `ini:"log_rotate_max_age"` LogRotateCompress bool `ini:"log_rotate_compress"` ObjectStorageEndpoint string `ini:"object_storage_endpoint"` ObjectStorageBucketName string `ini:"object_storage_bucket_name"` ObjectStorageAccessKeyID string `ini:"object_storage_access_key_id"` ObjectStorageSecretAccessKey string `ini:"object_storage_secret_access_key"` SoraArchiveDirFullPath string `ini:"archive_dir_full_path"` SoraEvacuateDirFullPath string `ini:"evacuate_dir_full_path"` UploadWorkers int `ini:"upload_workers"` // 1 ファイルあたりのアップロードレート制限 UploadFileRateLimitMbps int `ini:"upload_file_rate_limit_mbps"` UploadedFileCacheSize int `ini:"uploaded_file_cache_size"` WebhookEndpointURL string `ini:"webhook_endpoint_url"` WebhookEndpointHealthCheckURL string `ini:"webhook_endpoint_health_check_url"` WebhookTypeHeaderName string `ini:"webhook_type_header_name"` WebhookTypeArchiveUploaded string `ini:"webhook_type_archive_uploaded"` WebhookTypeSplitArchiveUploaded string `ini:"webhook_type_split_archive_uploaded"` WebhookTypeSplitArchiveEndUploaded string `ini:"webhook_type_split_archive_end_uploaded"` WebhookTypeReportUploaded string `ini:"webhook_type_report_uploaded"` ExcludeWebhookRecordingMetadata bool `ini:"exclude_webhook_recording_metadata"` WebhookBasicAuthUsername string `ini:"webhook_basic_auth_username"` WebhookBasicAuthPassword string `ini:"webhook_basic_auth_password"` WebhookRequestTimeoutS int32 `ini:"webhook_request_timeout_s"` WebhookTLSVerifyCacertPath string `ini:"webhook_tls_verify_cacert_path"` WebhookTLSFullchainPath string `ini:"webhook_tls_fullchain_path"` WebhookTLSPrivkeyPath string `ini:"webhook_tls_privkey_path"` }
func (Config) IncludeWebhookRecordingMetadata ¶
type GateKeeper ¶
type GateKeeper struct {
// contains filtered or unexported fields
}
type RecordingReport ¶
type RecordingReport struct { RecordingID string `json:"recording_id"` ChannelID string `json:"channel_id"` SessionID string `json:"session_id"` FilePath string `json:"file_path"` Filename string `json:"filename"` Metadata json.RawMessage `json:"metadata"` RecordingMetadata json.RawMessage `json:"recording_metadata"` }
type RecordingUnit ¶
type RecordingUnit struct {
// contains filtered or unexported fields
}
type UploaderManager ¶
type UploaderManager struct { ArchiveStream chan UploaderResult ArchiveEndStream chan UploaderResult ReportStream chan UploaderResult // contains filtered or unexported fields }
type UploaderResult ¶
type WebhookArchiveEndUploaded ¶
type WebhookArchiveEndUploaded struct { ID string `json:"id"` Type string `json:"type"` Timestamp time.Time `json:"timestamp"` RecordingID string `json:"recording_id"` SessionID string `json:"session_id"` ClientID string `json:"client_id"` ChannelID string `json:"channel_id"` ConnectionID string `json:"connection_id"` Filename string `json:"filename"` FileURL string `json:"file_url"` }
type WebhookArchiveUploaded ¶
type WebhookArchiveUploaded struct { ID string `json:"id"` Type string `json:"type"` Timestamp time.Time `json:"timestamp"` RecordingID string `json:"recording_id"` SessionID string `json:"session_id"` ClientID string `json:"client_id"` ChannelID string `json:"channel_id"` ConnectionID string `json:"connection_id"` Filename string `json:"filename"` FileURL string `json:"file_url"` MetadataFilename string `json:"metadata_filename"` MetadataFileURL string `json:"metadata_file_url"` }
type WebhookReportUploaded ¶
type WebhookReportUploaded struct { ID string `json:"id"` Type string `json:"type"` Timestamp time.Time `json:"timestamp"` RecordingID string `json:"recording_id"` ChannelID string `json:"channel_id"` Filename string `json:"filename"` FileURL string `json:"file_url"` RecordingMetadata json.RawMessage `json:"recording_metadata,omitempty"` }
Source Files
¶
Click to show internal directories.
Click to hide internal directories.