Documentation
¶
Index ¶
Constants ¶
const ( // KeyAccessKeyID, erişim anahtarı kimliği. Sır değil ama kimliğin // diğer yarısıyla birlikte durması gerekiyor. KeyAccessKeyID = "archive.access_key_id" // KeySecretAccessKey, gizli anahtar. MÜHÜRLÜ saklanıyor ve // panele hiç geri okunmuyor. KeySecretAccessKey = "archive.secret_access_key" )
Ayar anahtarları.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Archiver ¶
type Archiver struct {
// contains filtered or unexported fields
}
Archiver, bekleyen kayıtları nesne deposuna taşıyor.
func New ¶
func New(db *store.Store, cfg Config, resolve func(context.Context) (objstore.Credentials, error), build func(objstore.Credentials) (*objstore.Client, error), logger *slog.Logger) *Archiver
* New, arşivleyiciyi kurar. * * resolve nil ise ya da hedef yapılandırılmamışsa nil döner: arşivleme * kapalı ve budayıcının kapısı da kurulmuyor. * * ⚠️ KİMLİK OLMADAN DA KURULUYOR. Hedef config'de yazılıysa ama anahtar * henüz girilmemişse arşivleyici ÇALIŞIYOR, yükleme yapmıyor ve sebebini * söylüyor — böylece panelden anahtar girildiği anda iş başlıyor.
func (*Archiver) ArchivedIDs ¶
* ArchivedIDs, budayıcının sorduğu soruya cevap verir. * * record.Archived arayüzünü karşılıyor. Arşivleyici kapalıysa (nil) * budayıcıya hiç takılmıyor, yani kapı da yok.
type Config ¶
type Config struct {
// RecordingsDir, .cast dosyalarının kökü.
RecordingsDir string
// Bucket ve Prefix, nesne anahtarını kuruyor. İkisi de CONFIG'ten
// geliyor ve panelden değiştirilemiyor (bkz. settings.go).
Bucket string
Prefix string
// Interval, iki tarama arası.
Interval time.Duration
// Batch, bir turda kaç kayıt üstlenilecek.
Batch int
// ClaimTimeout, üstlenilmiş ama bitmemiş bir işin serbest kalma
// süresi. Öldürülen süreç temizlik yapamaz; bu süre onun yerine
// geçiyor.
ClaimTimeout time.Duration
// RetryAfter, başarısız bir denemeden sonra en erken tekrar.
RetryAfter time.Duration
}
Config, arşivleyicinin çalışma parametreleri.
type CredentialSource ¶
type CredentialSource string
CredentialSource, kimliğin NEREDEN geldiği. Panelin doğruyu söyleyebilmesi için gerekli: "buradan değiştiremezsin" demek, "değiştirdin ama hiçbir şey olmadı"dan iyidir.
const ( // FromHost: ortam değişkeni ya da 0600 dosya. Panel yazamaz. FromHost CredentialSource = "host" // FromPanel: ayarlar tablosundan. FromPanel CredentialSource = "panel" // FromNowhere: kimlik yok, yükleme duruyor. FromNowhere CredentialSource = "none" )
func Credentials ¶
func Credentials(ctx context.Context, db *store.Store, hostKeyID, hostSecret string) (objstore.Credentials, CredentialSource, error)
* Credentials, yürürlükteki kimliği ve kaynağını çözer. * * ⚠️ HOST ÖNCE. Bu sıra, panelin sessizce yok sayılmasını değil, açıkça * "buradan yönetilmiyor" demesini sağlıyor: kaynak FromHost dönerse * panel alanı salt okunur çiziliyor. Tersi olsaydı, dosyayı koyan * operatörün ayarı panelden gelen bir değerle sessizce değişirdi.