Sözlük

Dosyalar, indirme ve aktarım

iPhone’da dosyalarla ilgili keyfî görünen şeylerin çoğu tek bir yalıtım kuralından, indirmeleri güvenilir kılan şeylerin çoğu ise HTTP’nin tek bir özelliğinden doğuyor. Burada ikisi de var; bir de dosyaların cihazdan cihaza geçme yolları.

Kum havuzu

sandbox

Her uygulamanın yalnızca kendi deposunu görebilmesi kuralı. Bir uygulamanın diğerinin indirmelerini açamaması ve iOS’ta “dosya videonun yanında” diye bir şeyin olmaması bundan.

Her uygulama özel bir dizin alır ve başka kimsenin dizinini görmez. Dosyalar uygulamalar arasında yalnızca bilinçli hareketlerle geçer — paylaşım sayfası, belge seçici, sürükleme — ve her biri, uygulamanın kendiliğinden yaptığı değil, kişinin verdiği bir karardır.

Bedeli küçük yerlerde ortaya çıkar. Masaüstü oynatıcılar film.srtyi film.mkvnin yanında kendiliğinden bulur; iOS’ta “yanında” diye bir yer yok. Dolayısıyla altyazı dosyasını bilerek vermen gerekir ve eşleşmeyi hatırlayacak olan da uygulamadır.

Ayrıca: Uygulama grubuGüvenlik kapsamlı yer imi

Uygulama grubu

app group

Aynı geliştiricinin iki uygulamasının da açabildiği ortak alan — kum havuzundaki tek onaylı çatlak. Bir paylaşım uzantısı dosyayı ait olduğu uygulamaya böyle verir.

Paylaşım uzantısı, parçası gibi göründüğü uygulamadan ayrı bir programdır; kendi kum havuzu ve çok kısa bir ömrü vardır. Ana uygulamanın deposuna yazamaz.

Bu yüzden ikisinin de görmesine izin verilen bir alana yazar; uygulama da bir sonraki açılışında orayı boşaltır. Hiçbir şey bir geliştirici sınırını geçmez ve hiçbir şey açık bir dokunuş olmadan yer değiştirmez.

Ayrıca: Kum havuzu

Güvenlik kapsamlı yer imi

security-scoped bookmark

Kum havuzunun dışındaki bir klasöre — harici bir sürücü, iCloud’daki bir klasör — verilen izni hatırlayan belirteç; uygulama böylece sonradan yeniden sormadan açabilir.

Sistem dosya seçicisiyle bir konum seçtiğinde verilen izin yalnızca o an için geçerlidir. Yer imi bunu açılışlar arasında korur ve uygulamanın, temsil ettiği erişimi açıkça başlatıp bitirmesi gerekir.

Harici bir SSD’ye hiçbir şey kopyalamadan göz atmayı mümkün kılan şey bu; üstelik tam olarak seçtiğin şeyle sınırlıdır — bir klasöre verilen yer imi, komşusu hakkında hiçbir hak vermez.

Ayrıca: Kum havuzu

Aralık isteği

range request

Sunucudan dosyanın tamamı yerine belirli bir dilimini istemek — 5.000.000 ile 5.999.999 arası baytlar. Bir indirmenin kaldığı yerden sürmesini ve tek dosyanın birkaç bağlantıyla çekilmesini sağlayan şey bu.

Aralıkları destekleyen bir sunucu 206 Partial Content ile yanıt verir ve istenen dilimi gönderir. Desteklemeyen 200 döner ve her şeyi baştan gönderir — indirmeyi sürdürmekle yeniden başlatmak arasındaki fark burada.

Bir indirme motorundaki ilginç her şey bu tek HTTP özelliğine dayanıyor. O olmadan kopan bağlantıdan sonra devam yok, cihaz yeniden başladıktan sonra devam yok ve birden çok bağlantı kullanmanın yolu yok.

Ayrıca: Sürdürülebilir indirmeParalel bağlantı

Sürdürülebilir indirme

Baştan başlamak yerine tam olarak durduğu yerden devam eden aktarım; kaç baytın kesinleştiğini kaydeder ve yalnızca gerisini ister.

Şart, kaydedilen sayının asla iyimser olmaması. Yazıldı sayılan ama hâlâ tamponda bekleyen bir bayt, uygulama kapatıldığında dosyada bir deliğe dönüşür — bir videonun ortasındaki delik de ancak izlemenin birinci saatinde kendini gösteren bir bozulmadır.

Sayının ağdan okumayı değil diske yazmayı takip etmesi gerekmesi ve ön plan ile arka plan aktarımı arasındaki her devrin tek bir sayıda anlaşması gerekmesi bundan.

Ayrıca: Aralık isteğiArka plan aktarımı

Paralel bağlantı

çok bağlantılı, parçalı indirme

Bir dosyayı aralıklara bölüp aynı anda birkaçını çekmek. Tek bir bağlantı sınırlanıyorsa işe yarar; darboğaz kendi hattınsa hiçbir şey değiştirmez.

Her bağlantının hızını kısan bir sunucu, çoğu zaman birkaç bağlantı üzerinden toplamda daha fazlasını vermeye ikna edilebilir. Çok bağlantılı indirmenin ününü kazandığı yer burası.

Sihir değil ve sıkça yanlış anlaşılıyor. Bağlantın zaten doluysa daha fazla bağlantı aynı kapasiteyi daha küçük parçalara böler ve üstüne ek yük getirir. Bazı sunucular da tek bir adresten gelen çoklu istekleri reddeder ya da kısar.

Ayrıca: Aralık isteğiSürdürülebilir indirme

Arka plan aktarımı

Uygulama kapandıktan sonra da sürsün diye işletim sistemine devredilen indirme. Zamanlamaya sistem karar verir; devam etmesinin bedeli bu.

Bir iOS uygulaması, sen ondan çıktıktan kısa süre sonra çalışmayı bırakır. Sistemin arka plan servisine verilen bir aktarım bunu atlatır, uygulamanın kapatılmasını atlatır ve cihaz yeniden başladıktan sonra kaldığı yerden devam eder.

Vazgeçtiği şey denetim. Sistem bu aktarımları güç ve ağ koşullarına dair kendi görüşüne göre gruplar; dolayısıyla arka plandaki bir indirme, uygulama içindekinin yapmayacağı biçimde duraklayıp yeniden başlayabilir — ama biter.

Ayrıca: Sürdürülebilir indirmeKum havuzu

WebDAV

HTTP’ye eklenen ve bir web sunucusunu dosya sunucusuna çeviren uzantı: listele, oku, yaz, taşı, sil. Nextcloud ile ownCloud’un konuştuğu, çoğu NAS cihazının sunduğu şey.

Altında HTTP olduğu için WebDAV, webdeki her şeyle aynı altyapı üzerinden çalışır — özel port yok, özel istemci protokolü yok. Daha ayrıntılı dosya protokolleri sönerken onun ayakta kalması da bundan.

Dosyalarını bir şirketin bulutuna koymak istemeyen biri için pratik alternatif bu: kendi sunucun, kendi kimlik bilgilerin, sıradan standartlar.

Ayrıca: Bulut depolama

Bulut depolama

Başkasının sunucusunda duran ve o şirketin API’si üzerinden erişilen dosyalar — Dropbox, OneDrive, Box, pCloud. Her birinin kendi arayüzü var; uygulamaların onları teker teker desteklemesi bundan.

Evrensel bir bulut protokolü yok. Her sağlayıcı kendi API’sini ve kendi oturum akışını tasarladı; dolayısıyla bir uygulamaya sağlayıcı eklemek bir ayar girdisi değil, baştan yazılan bir iş.

Oturum açma normalde OAuth ile olur; yani uygulama parolayı hiç görmez: sağlayıcı kişiyi doğrular ve karşılığında, sağlayıcının kendi ayarlarından istediğin an iptal edebileceğin bir belirteç verir.

Ayrıca: WebDAV

WebRTC

İki cihazı, bağlantı kurulduktan sonra aralarında sunucu olmadan bağlayan standart. Cihazdan cihaza aktarımın bir dosyayı odanın öbür ucuna taşımak için kullandığı şey.

Küçük bir sinyalleşme sunucusu iki cihazı birbiriyle tanıştırır — altı haneli kodun işi bu — ve sonra aradan çekilir. Dosya doğrudan cihazlar arasında gider, arada hiçbir yerde saklanmaz.

Aynı ağdayken ağın izin verdiği kadar hızlıdır. İnternet üzerinden ise her iki tarafa doğrudan ulaşılıp ulaşılamadığına bağlıdır; bağlantıların ara sıra, iki cihazın da göremediği sebeplerle kurulamaması buradan gelir.

Ayrıca: Yerel HTTP sunucusu

Yerel HTTP sunucusu

Bir uygulamanın kendi ağında web isteklerine yanıt vermesi; böylece bilgisayarındaki web tarayıcısı, telefonunun sunduğu bir sayfayı açabilir. Wi-Fi Aktarımı böyle çalışır: kablo yok, hesap yok.

Telefon bir adres gösterir, bilgisayar o adresi açar ve gelen sayfayı telefonun kendisi sunar. Dosyalar doğrudan yerel ağ üzerinden gider ve oradan hiç çıkmaz.

Aynı ağdaki herkes o adrese ulaşabileceği için bir kilit şart: girilecek bir kod, işlem başına verilen izinler ve bilerek açılmadıkça kapalı duran silme türü işlemler.

Ayrıca: WebRTC

Diğer konular