Skip to content

File upload 100MB limit problem #16

@ilkermanap

Description

@ilkermanap

Buyuk boyutlu binary ureten paketlerin repoya gonderimi sirasinda problemler yasaniyor. Sorunun kaynagi, cloudflare 100 MB dosya aktarim limiti.

Bu durumu duzeltebilmek icin, hem gonullu uygulamasinda, hem de ciftlik uygulamasinda degisiklik gerekiyor.

Buyuk boyutlu dosyalarin gonderimi icin ayri bir url tanimlayacagiz. Bu url uzerinden, buyuk boyutlu dosyalari parca parca gonderecegiz. Parcalar tamamlandiginda ise normal akisa gore islem devam edecek.

upload sirasinda dosya ile birlikte su degiskenler de gonderilecek:

  1. Dosya parca adi ( a.pisi.part.3)
  2. toplam parca sayisi (10)
  3. gonderilen parca no ( 3 )
  4. Gonderilen parca icin sha256 hash
  5. Tam boyutlu orijinal dosya icin hash

Dosya parcasi geldikten sonra islemler:

  1. ciftlik tarafinda bu dosya alinip gecici bir dizine kaydedilecek.
  2. sha256 ile hash cikarilip, gonullu tarafindan gonderilen hash ile karsilastirilacak.
  3. hash yanlis ise, hata mesaji gonulluye gonderilecek ve fonksiyondan cikilacak.
  4. hash dogru ise gecici dizinde bulunan dosyalar kontrol edilip, gerekli butun parcalarin gelip gelmedigi saptanacak.
  5. butun parcalar varmis ise, sirayla birlestirilip orijinal pisi dosyasi olusturulacak.
  6. Olusturulan dosyanin sha256 hash degeri cikarilacak.
  7. Gonullu tarafindan gonderilen tam boyutlu dosya hash degeri ile karsilastirilacak
  8. hash tutuyorsa normal paket olarak isleme devam edilecek.
  9. hash tutmuyorsa, gonulluye tam dosya hash degerinin tutmadigi iletilecek. Bu durumda gonderim isleminin yeniden baslatilmasi gerek.

Bu kisim gonullu degisikligi yapilmadan yazilip test edilebilir. Gonullu icin de buradakine benzer bir is istegi olusturup, onun icinde neler yapilmasi gerektigini yazacagim.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions