Help us shape the future of Go! Take the 2026 Go Developer Survey

archive

package
v1.3.0 Latest Latest
Warning

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

Go to latest
Published: Sep 16, 2026 License: Apache-2.0 Imports: 11 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