Sunucu tarafi icin buna benzer bir issue girisi yapildi.
Dosya gonderimi gonullu/farm.py icindeki send() metodu (satir 47) ile yapiliyor. Orada islem sonucu olusan dosyanin boyu kontrol edilmeden gonderim yapiliyor. Yapilmasi dusunulen degisiklik ve ilgili adimlar asagida:
a.pisi adindaki 125 MB boyutlu paketin gonderilecegini varsayalim:
- a.pisi icin sha256 hesapla
- dosya boyunu kontrol et. 100 mb'dan kucuk ise gonder.
- 100 mb'dan buyuk ise 50 mb parcalar oku. Parcali dosya isimleri a.pisi.part.1, a.pisi.part.2 ve a.pisi.part.3 olacak. sadece gonderilecek olan dosyayi diske yaz.
- gonderilecek dosyanin sha256 degerini bul.
- gonderim sirasinda parca dosya adi (a.pisi.part.1) , toplam parca sayisi (3), gonderilen parca no (1), gonderilen parcanin sha256 hash degeri, gercek paketin ha256 hash degeri bilgilerini gonder.
- sunucuya dosyayi ve 5. adimdaki degerleri gonder.
- Sunucudan, tum parcalar tamamlandiysa sunucu tarafinda birlestirilmis pisi dosyasinin sha256 degeri, eksik parca var ise sadece o parcanin sha256 hash degeri gonderilir.
- sunucunun gonderdigi hash degeri yanlis ise, yeniden gonderim yapin.
- sunucu a.pisi icin hash degeri gonderdiginde, gonderilen hash yanlis ise, 1. adimdan yeniden baslayin.
- hash degeri dogru ise islem basarili tamamlanmistir, fonksiyondan cikin.
Sunucu tarafi icin buna benzer bir issue girisi yapildi.
Dosya gonderimi gonullu/farm.py icindeki send() metodu (satir 47) ile yapiliyor. Orada islem sonucu olusan dosyanin boyu kontrol edilmeden gonderim yapiliyor. Yapilmasi dusunulen degisiklik ve ilgili adimlar asagida:
a.pisi adindaki 125 MB boyutlu paketin gonderilecegini varsayalim: