3 yanıt
  1. 4
    Tansel Yener
    Ünvan yok · 5 ay önce

    İki dosya her şeyiyle aynıysa (dosya boyutu, adı vb.) md5_file() ya da sha1_file() fonksiyonlarıyla dosyalar için hash oluşturup veritabanına kaydet. Sonra ikinci dosya yüklendiğinde tekrar hash hesaplayıp, bu hash'in veritabanında mevcut olup olmadığını kontrol et. Mevcutsa aynı dosya yüklenmeye çalışılıyor demektir.


    Ama iki dosyanın sadece görüntülerini karşılaştıracaksan bu nasıl engellenir bunu bilmiyorum.

  2. 3
    Sancar Acunal
    ~ · 5 ay önce

    Yandex.Disk aynı dosyanın ikinci kez yüklenmesini engellemek için değil ama upload işlemini gerçekleştirmeden, dosyayı disk üzerinde kopyalayarak performansı arttırmak için kullanıyor.

    Yani diyelim ki bir kişi Yandex.Disk'e büyük bir dosya upload ediyor. İkinci kişi de her şeyiyle aynı dosyayı upload etmek istediğinde upload işlemi sözkonusu olmadan yükleme işlemi tamamlanıyor. Çünkü Yandex aynı dosyanın varlığını tespit etti, mevcut dosyayı kopyaladı ve diğer kişinin Disk'ine yapıştırdı.

    Fakat dosya scripte ulaşmadan iki dosya nasıl karşılaştırılıyor emin değilim. Ya upload edilen dosyayla ilgili temel bilgilerin istemci tarafında javascriptle elde edilmesi lazım, ya da sunucu tarafına upload işlemi başladığında dosyayla ilgili Header bilgilerinin ulaşıyor olması lazım, bu konunun ayrıntılarını bilemiyorum açıkçası.

    Yandex.Disk iki dosyanın aynı olup olmadığına şu değerlere bakarak karar veriyormuş:

    Etag: <md5 checksum>
    Sha256: <SHA-256 hash>
    Content-Length: <file size in bytes>

    Siz de bu değerleri her dosya için veritabanına işleyerek daha sonra karşılaştırma yapabilirsiniz.

    Daha ayrıntılı bilgi şurada : https://tech.yandex.com/disk/doc/dg/reference/put-...

  3. 0
    Ali Rıza Özmen
    Bilg. Müh. Öğrencisi · 5 ay önce

    Gerçekten zekice bir metot. Deep Web'de dosyaların yanında gördüğüm hash'lerin de ne işe yaradığını kendiliğinden anlamış oldum böylece. Dosyanın orjinal ve ellenmemiş olduğunu tespit edebiliyoruz :)

    Peki bu metotla dosyaların gerçekte aynı olmayan dosyalarla karışma ihtimali var mı sizce?