archive

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 3, 2026 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

View Source
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

func (a *Archiver) ArchivedIDs(ctx context.Context, ids []string) (map[string]bool, error)

* 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.

func (*Archiver) RunOnce

func (a *Archiver) RunOnce(ctx context.Context)

* RunOnce, bir tur yükleme yapar. * * DIŞARI AÇIK, çünkü testin sunucu kurmadan çağırabilmesi gerekiyor: * "yeniden başlatmadan sonra bekleyen iş yükleniyor mu" sorusu ancak * böyle ölçülebilir.

func (*Archiver) Start

func (a *Archiver) Start(ctx context.Context)

Start, tarama döngüsünü çalıştırır. ctx bitene kadar dönmüyor.

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL