media-stow
Fotoğraf, video ve ses dosyalarını SHA-256 ile karşılaştıran; düzenleme, eşitleme ve yinelenen dosyaları ayıklama komutları sunan .NET aracı.
- C#
- .NET
- SHA-256
- JSON
Amaç ve Kapsam
Yerel medya arşivlerini dosya içeriği üzerinden karşılaştırıp düzenlemeye yönelik komut satırı uygulaması. Fotoğraf, video ve ses dosyaları için eşitleme, yinelenenleri ayıklama, dizin karşılaştırma ve doğrulama komutları sunar.
Mimari ve Depo Yapısı
Program.csveCommands/CommandRegistry.cs: servis kurulumu ve komut seçimi.Commands:sync,dedup,verify,compare,extract-commongibi bağımsız komutlar.Services: dosya erişimi, SHA-256 hesabı, terminal günlüğü ve kullanıcı onayı.Models: medya indeksi, dosya kayıtları ve doğrulama raporları.Configuration: uygulama, kategori ve filtre ayarları.
Tek bir .NET konsol uygulamasıdır. Arşiv bilgisi yerel JSON dosyalarında tutulur; ayrı bir sunucu gerektirmez.
Çalışma Akışı
sync --init, kaynak dosyaları kategori ve uzantı düzenine göre hedef arşive kopyalar ve current.json indeksini oluşturur. Sonraki sync işlemleri diskteki içerikle indeksi karşılaştırarak yeni, silinmiş veya yanlış konumdaki dosyaları belirler.
dedup aynı hash’e sahip dosyaları gruplar. verify dizin yapısını ve isteğe bağlı kaynak eşlemesini kontrol ederek JSON raporu üretir. Eşitleme değişiklikleri ayrıca sürümlü JSON kayıtlarına yazılır.
Teknik Kararlar
HashService, dosya akışından SHA-256 hesaplar; kimlik karşılaştırması dosya adına dayanmaz. Toplu hash işlemlerinde paralellik işlemci sayısıyla sınırlandırılır.
İndeks ve raporlar önce geçici dosyaya yazılıp ardından hedef ada taşınır. Eşitleme ve yinelenenleri ayıklama komutları -n ile önizleme sunar. Dosya erişimi ve kullanıcı etkileşimi komutlardan ayrı servislerdedir.
Sınırlar ve Doğrulama
İçerik hash’i eşitliği görsel benzerlik anlamına gelmez; yeniden kodlanmış veya düzenlenmiş bir fotoğraf farklı dosya olarak değerlendirilir. Hash hesaplama tüm dosyayı okumayı gerektirir ve büyük arşivlerde disk erişimi maliyeti oluşturur.
Komutların bir bölümü dosya taşıyabilir veya silebilir. İncelenen depoda ayrı bir otomatik test projesi bulunmuyor; veri kaybı olmayacağına ilişkin bir garanti çıkarılamaz. Bu çalışmada komutlar medya dosyaları üzerinde çalıştırılmadı.
Kaynaklar
İnceleme tarihi: 8 Eylül 2026. İncelenen sürüm (69d56b4).