İçeriğe atla
HexaTransfer
Bloga dön
Dosya transferi

Kesilen aktarımları devam ettirme: sıfırdan başlamayın

Devam ettirilebilir dosya aktarımlarının nasıl çalıştığını öğrenin. Büyük yüklemelerde ilerlemeyi bir daha kaybetmeyin.

Devam ettirilebilir aktarımlar dosyayı parçalara böler ve hangi parçaların başarıyla alındığını takip eder; bağlantı kesildiğinde istemci sıfır bayttan değil, bir sonraki gönderilmemiş parçadan devam eder. Bu alandaki web standardı tus.io'dur — SwissTransfer, HexaTransfer, Vimeo ve Cloudinary tarafından uygulanan açık bir devam ettirilebilir yükleme protokolü. İndirmeler için HTTP Range istekleri (RFC 7233), tarayıcıların ve curl veya aria2 gibi araçların kesilen indirmeleri sürdürmesini sağlar. Devam ettirme özelliği olmadan, yüzde doksan yedisinde başarısız olan 9,8 GB'lık bir yükleme tamamen boşa gider — devam ettirme özelliğiyle en fazla 50 MB kaybedersiniz.

Devam ettirilemeyen yüklemelerin sorunu

Basit bir dosya yüklemesi, dosyanın tamamını tek bir HTTP POST isteği olarak gönderir. Bağlantıyı herhangi bir şey keserse — Wi-Fi kesilmesi, VPN zaman aşımı, dizüstü bilgisayar uyku modu, İSS arızası — TCP bağlantısı kapanır ve sunucu kısmi veriyi siler. İstemci sıfır bayttan başlamak zorunda kalır.

50 Mbps bağlantıda 5 GB'lık bir yükleme için bu, çöpe giden 13 dakika demektir. 50 GB'lık bir yükleme için iki saatten fazla. Mobil bağlantılarda devam ettirilemeyen yüklemelerin başarısızlık oranı son derece yüksektir — 4G bağlantısında 30 dakikalık bir yükleme nadiren ilk denemede tamamlanır.

Devam ettirilebilir protokoller nasıl çalışır

Modern devam ettirilebilir yüklemeler kabaca şu şekilde işler:

  1. Oluştur: İstemci, sunucuya dosyanın toplam boyutunu ve meta verilerini içeren bir POST isteği gönderir. Sunucu bu özgün yükleme için benzersiz bir URL döndürür ve depolama alanı ayırır.
  2. Parçala: İstemci dosyayı parçalara böler (genellikle 5-64 MB).
  3. Yükle: İstemci her parçayı, konumunu gösteren Content-Range veya Upload-Offset başlığıyla PATCH isteği olarak gönderir.
  4. Onayla: Sunucu parçayı depolama alanına yazar ve yeni ofseti doğrular.
  5. Devam et: Bağlantı kesilirse istemci, yükleme URL'sine HEAD isteği gönderir. Sunucu mevcut ofseti (kaç bayt aldığını) bildirir. İstemci o ofsetten devam eder.
  6. Tamamla: Son parça onaylandığında yükleme tamamlanır.

Bu model, tus.io spesifikasyonu (1.0.0 sürümü yaygın olarak kullanılmaktadır) ile tanımlanmıştır. Diğer biçimler arasında S3 Çok Parçalı Yükleme ve Google Cloud Storage Devam Ettirilebilir Yüklemeler sayılabilir.

Tus.io: açık standart

Tus ("transloadit yükleme sunucusu"), Transloadit tarafından sürdürülen ücretsiz ve açık bir protokoldür. Spesifikasyon tus.io adresinde yayımlanmakta olup şu ortamlarca uygulanmaktadır:

  • İstemci kütüphaneleri: tus-js-client (tarayıcı + Node.js), TUSKit (iOS), tus-android-client, tus-java-client
  • Sunucu uygulamaları: tusd (Go referans sunucusu), tus-node-server ve pek çok framework entegrasyonu
  • Ticari hizmetler: SwissTransfer, HexaTransfer, Vimeo, Cloudinary, Transloadit, Uppy companion sunucuları

Protokol kasıtlı olarak minimal tutulmuştur: dört HTTP fiili (POST, HEAD, PATCH, OPTIONS) ve bir avuç başlık (Upload-Offset, Upload-Length, Tus-Resumable). Bu yapı, uygulamaları basit ve birlikte çalışabilir kılar.

Parça boyutu kararları

Parça boyutu, kurtarma ayrıntısı ile HTTP ek yükü arasında bir denge kurar.

| Parça boyutu | Başarısızlıkta kayıp | Ek yük | |---|---|---| | 1 MB | ≤ 1 MB | Yüksek (çok istek) | | 5 MB | ≤ 5 MB | Orta | | 16 MB | ≤ 16 MB | Düşük | | 64 MB | ≤ 64 MB | Çok az | | 256 MB | ≤ 256 MB | Ek yük ihmal edilebilir, ancak arızada ağır kayıp |

Kararlı bağlantılarda 32-64 MB parçalar verimi maksimize eder. Mobil veya kararsız Wi-Fi bağlantılarında 2-5 MB parçalar arızadan daha hızlı toparlar. Hizmetler genellikle 5-10 MB aralığında bir uzlaşı varsayılan değeri belirler.

Aktarımları gerçekte ne keser

Başarısızlık biçimlerini anlamak, bir hizmetin devam ettirme uygulamasının güvenilirliğini değerlendirmeye yardımcı olur:

  • Wi-Fi kesintileri: ağ değiştirme, sinyal kaybı, yönlendirici yeniden başlatma. Son derece yaygındır.
  • Dizüstü uyku modu: macOS/Windows'ta kapağı kapatmak. İşletim sistemi ağı askıya alır; uyandıktan sonra bağlantıların yeniden kurulması gerekir.
  • Sekme askıya alma: modern tarayıcılar bellek tasarrufu için arka plan sekmelerini askıya alır. Askıya alınan sekmedeki yüklemeler durabilir.
  • İSS/ağ omurgası sorunları: anlık yönlendirme değişiklikleri, TLS yeniden el sıkışması gereksinimi.
  • VPN yeniden bağlantısı: VPN istemcileri periyodik olarak yeniden müzakere eder; TCP bağlantısı kopar.
  • Sunucu tarafı yeniden başlatmalar: aktarım hizmeti yeni bir sürüm dağıtır; aktarım halindeki istekler başarısız olur.
  • Kurumsal güvenlik duvarı müdahaleleri: trafiği inceleyen kurumsal güvenlik duvarları zaman zaman uzun süreli bağlantıları keser.

Sağlam bir devam ettirme uygulaması bunların tümünü aynı mekanizmayla ele alır: yeniden bağlan, ofseti sorgulamak için HEAD isteği gönder, oradan devam et.

İndirmeler için devam ettirme

HTTP Range istekleri (RFC 7233), devam ettirilebilir indirmeleri destekler. Yanıt başlıklarında Accept-Ranges: bytes bildiren bir sunucu, aralık isteklerini destekler. İstemciler bu sayede yalnızca 1.000.000 ofsetinden itibaren baytları almak için Range: bytes=1000000- isteği gönderebilir.

Tarayıcılar bunu indirme yöneticisindeki "Devam Et" seçeneğine basıldığında otomatik olarak kullanır. Chrome, Firefox ve Safari; uyumlu sunuculardan yapılan indirmelerde devam ettirmeyi destekler. Cloudflare, Fastly ve CloudFront gibi CDN'lerin büyük çoğunluğu aralıkları destekler.

Komut satırı araçları daha fazla denetim sunar:

  • curl -C - -O url — indirmeyi kaldığı yerden devam ettirir.
  • wget -c url — aynı işi yapar.
  • aria2c -c -s 16 url — hız için 16 paralel aralık isteği akışıyla indirir.

Devam ettirmeyi destekleyen hizmetler

Modern aktarım hizmetlerinin büyük çoğunluğu yükleme devam ettirmeyi destekler:

| Hizmet | Yükleme devam | İndirme devam | |---|---|---| | SwissTransfer | Evet (tus tabanlı) | Evet (HTTP aralıkları) | | HexaTransfer | Evet (parçalı + tus uyumlu) | Evet | | WeTransfer | Evet (parçalı yükleme) | Evet | | Dropbox Transfer | Evet | Evet | | Google Drive | Evet (devam ettirilebilir yükleme API) | Evet | | OneDrive | Evet | Evet | | Box | Evet | Evet |

Ücretsiz katmanlar zaman zaman devam ettirmeyi ücretli yükseltmeleri teşvik etmek amacıyla devre dışı bırakır; ancak bu durum 2026'da nadirdir. Devam ettirme desteği olmayan eski hizmetler, kullanıcılar başarısızlıklardan bıktıkça öneri listelerinden silinmektedir.

Otomatik olarak devam ettirilmeyenler

Basit uygulamalardaki düz HTTP POST yüklemeleri devam ettirmeyi desteklemez. FTP aktarımları tarihsel açıdan değişkendir — bazı istemciler ve sunucular REST (yeniden başlatma) komutlarını desteklerken diğerleri desteklemez. E-posta ekleri hiçbir zaman devam ettirilemez — bir Gmail gönderimi yüzde doksanda başarısız olursa baştan başlamanız gerekir.

Torrent tabanlı aktarımlar, protokolün hangi parçaların doğrulandığını takip etmesi sayesinde yapısal olarak devam ettirmeyi destekler.

Uçtan uca şifrelemeyle devam ettirme

Devam ettirilebilir yüklemeler ve istemci taraflı şifrelemenin birleşimi dikkatli parçalama gerektirir. Dosya parçalara bölünür, her parça benzersiz bir IV (başlatma vektörü) kullanılarak AES-256-GCM ile şifrelenir ve ardından yüklenir. Devam ettirmede istemci hangi parçaların tamamlandığını bilmeli ve bir sonrakinden devam etmelidir.

Her parça bağımsız olarak şifrelenip doğrulandığından (GCM'nin AEAD modu sayesinde), kısmi yüklemeler üzerinde değişiklik yapılamaz. 5 GB ofsetine sahte veri ekleyen kötü niyetli bir sunucu, alıcı şifresini çözmeye çalıştığında GCM etiketi uyuşmazlığı nedeniyle kimlik doğrulama hatasıyla karşılaşır.

HexaTransfer gibi uygulamalar, ana anahtar ve parça indeksinden belirlenimli olarak türetilen parça başına IV'ler kullanır; bu sayede devam ettirme işlemi IV'lerin ayrıca saklanmasını gerektirmez.

İstemci tarafı en iyi uygulamalar

Devam ettirme başarısını maksimize etmek için:

  • Yükleme sırasında sekmeyi aktif tutun. Tarayıcı sekmesi askıya alınması devam eden yüklemeleri durdurur. Aktarım hizmeti arayüzlerinde standart "Bu sekmeyi kapatmayın" uyarısı bulunur.
  • Mümkün olduğunda kablolu ağa bağlayın. Çoğu başarısızlığa Wi-Fi kesintileri yol açar.
  • Uzun yüklemeler sırasında güç tasarrufu uyku modunu devre dışı bırakın. macOS: caffeinate -i. Windows: Powertoys Awake yardımcı programı veya güç planı değişiklikleri.
  • Yükleme ortasında Wi-Fi ağlarını değiştirmeyin. TCP bağlantısı IP değiştirir ve kopar.
  • Dizüstü kapağını kapatmadan önce yüklemenin tamamlanmasını bekleyin. Modern macOS kısa uyku modlarında yüklemeleri bazen korur, ancak bu güvenilir değildir.

Sunucu tarafında doğrulama

Bazı hizmetler, sunucu durumunu gerçekte yansıtmayan tamamlanmamış ilerleme çubukları gösterir. Bir veya iki kesintiden kurtulan bir yüklemeden sonra sayfayı yenileyin ve bağlantının çalıştığını doğrulayın — gizli modda açın ve küçük bir bölümü indirin. Devam ettirme başarılı olduysa tam dosya sorunsuz inecektir.

Paranoya gerektiren senaryolar için istemcide bir SHA-256 karma değeri hesaplayın, yükleyin ve indirilen dosyayı karma değeriyle karşılaştırarak doğrulayın. Kriptografik dosya bütünlüğü kontrolü gigabayt başına 10 saniyelik CPU gerektirir ve mutlak kesinlik sağlar.

Değerlendirme

Devam ettirilebilir aktarım, 2026'da temel bir özellik hâline gelmiştir — bu özelliğe sahip olmayan herhangi bir hizmet, birkaç yüz megabaytın üzerindeki dosyalar için anında elenmelidir. tus.io uyumluluğunu veya eşdeğer parçalı yükleme davranışını arayın. Seçtiğiniz hizmetin kesintileri sorunsuz biçimde ele aldığından emin olun; büyük bir aktarıma geçmeden önce küçük bir dosyada kasıtlı bir ağ kesintisiyle test edin.

hexatransfer.com'da deneyin — ücretsiz, hesap gerekmez, 10 GB'a kadar.

Uçtan uca şifreleme ile büyük dosyaları güvenle gönderin

Uçtan uca şifreleme ile 10 GB'a kadar dosya ücretsiz aktarın. Hesap gerekmez. Dosyalarınız yüklenmeden önce tarayıcınızda şifrelenir — başka kimse okuyamaz.

Dosya gönder