Hızlı bir tanıtım mı istiyorsunuz? Yukarıdaki videoyu izlemeniz yeterli!
Geçtiğimiz yıl, adlı bir yardımcı programı yayınladım Pafera Dosya Sunucusu . Cihazlarınız için web tabanlı bir dosya yöneticisi çalıştıran ve fotoğraflarınızı ve shiba simgelerinizi göstermek için kullanışlı bir slayt gösterisi özelliğine sahip bir web tarayıcısı olan her şeye kolay dosya paylaşımı sağlayan Rust'ta yazılmış bir konsol uygulamasıdır. Bu, bir partiye gidebileceğiniz ve 200 arkadaşınızın kendi telefonlarında, kendi zamanlarında ve kendi hızlarında son tatil fotoğraflarınıza göz atmasına izin verebileceğiniz anlamına gelir.
Daha sonra, arkadaşlarımdan ve rastgele internet yabancılarından çeşitli öneriler ve kullanım kalıpları geldikçe, giderek daha fazla özellik eklemeye başladım. Artık tüm dizin ağaçlarını rsynching etme, medya dosyalarını dönüştürme, dosyaları yerel işletim sistemi uygulamalarıyla açma ve cihazlarınız arasında dosyaları otomatik olarak senkronize etme yeteneğine sahip.
Ancak bir konsol uygulaması olması nedeniyle, tüm cihazlarınız için evrensel bir çözüm olmasını engelleyen büyük bir sorun vardı:
Konsol uygulamaları iOS'ta çalışamaz, bu da Pafera Dosya Sunucusunu iPhone'larda veya iPad'lerde çalıştıramayacağınız anlamına gelir...
Şimdiye kadar.
Karadağ tatilleri kutlarken Noel tatilinde biraz boş zamanım vardı, bu yüzden Flutter/Dart'ta telefonunuzdan sunuculara kolayca göz atmanızı sağlayacak çok platformlu bir yardımcı uygulama yazmayı denedim. Bu şekilde, teknolojiye daha az meraklı arkadaşlarım sadece iki düğmeye basıp sunucularıma bağlanabiliyordu.
Bu süreçte Dart'ı kullanarak iOS cihazlarda kendi web sunucunuzu çalıştırabileceğinizi fark ettim ve düşündüm ki...
Hey! Neden dosya sunucusunu Dart'a uygulamıyorum ki!
Yani iki hafta sonra uygulama burada.
Şimdi, performans Rust sürümüne kıyasla korkunç derecede yavaş. Rust sunucusu saniyede yaklaşık 40.000 istek sunabilir...
Dart versiyonu ise sadece 400 civarına hizmet verebiliyor....
Ama önemli olan işe yaraması...
ve iPhone'lara yükleniyor!
Flutter'ın son sürümlerindeki PDFx kütüphanesindeki bir hatadan dolayı, tüm butonlar çirkin siyah çizgiler olarak göründüğü için güzel ikonlar kullanmayı bırakmak zorunda kaldım.
Ancak temel işleyiş aynı kalıyor.
Herkes aynı WiFi ağına veya telefonunuzun etkin noktasına bağlandıktan sonra, uygulama simgesine tıklayın, paylaşmak istediğiniz klasörü seçin ve "Sunucuyu Başlat"a dokunun.
Daha sonra QR kod butonuna tıklayın, arkadaşlarınızın taramasını sağlayın, böylece onlar da telefonlarındaki klasörünüzde mutlu bir şekilde gezinebilir, hatta telefonunuzdaki filmleri doğrudan kendi telefonlarına aktarabilirler.
Arkadaşınız dizüstü veya masaüstü bilgisayar kullanıyorsa, bu da sorun değil. Sadece cihazlarındaki QR kodunun üstünde gösterilen URL'yi yazın, onlar da aynısını yapabilirler.
iOS veya Android'de çalışmıyorsanız, bu da sorun değil. Flutter Uygulamaları OSX, Windows ve Linux'ta gayet iyi çalışır, bu yüzden aynı işlevselliği ve hatta daha fazlasını, uygulamanın kullanması için sisteminize rsync, FFMpeg ve ImageMagick yüklerseniz elde edersiniz.
Basit dosya paylaşımının yanı sıra bir kaç gelişmiş özellik daha var, o yüzden burada kısaca bir genel bakış sunacağım.
Ana bilgisayar adı, diğer cihazlar "Diğer sunucuları ara"ya tıkladığında gösterilen şeydir. Aynı anda birkaç cihazı paylaşıyorsanız, bir cihazı diğerinden hızlıca ayırt etmek için bunu kullanabilirsiniz.
Klasör, aslında paylaştığınız dosya sistemi klasörüdür. Belgeler/paylaşılan'da varsayılan olarak "Belgeler klasörünü kullan"a tıklayabilir veya başka bir klasör seçmek için "Klasör seç"e tıklayabilirsiniz. Ayrıca, iOS uyku modundan çıkarken uygulamanın ayarlarını düzgün bir şekilde yenilemiyorsa "Belgeler klasörünü kullan"a tıklamanız gerekebilir.
Mevcut IP'yi kullan, cihazınızın mevcut WiFi IP'sini otomatik olarak algılar. "Belgeler klasörünü kullan"da olduğu gibi, iOS uygulamayı düzgün bir şekilde yenilemiyorsa ve hala önceki bir WiFi ağından bir IP kullanıyorsa kullanın.
"Tüm arayüzlerde paylaş" genel IP'yi 0.0.0.0 olarak ayarlar, bu da şu anlama gelir: herkes bağlandığınız herhangi bir şey sunucunuzu görebilecek. Birden fazla bağlantısı olan masaüstlerinde kullanışlıdır, ancak halka açık yerlerde kullanırken dikkatli olun.
"Paylaşımı Başlat" sunucuyu çalıştıracak ve yönetmeniz için ana sayfayı açacaktır. Tekrar tıklamak sunucuyu durduracak ve dosyalarınızı güvende tutacaktır.
"Load last settings" ve "Save current settings" tam olarak dediklerini yapar. Ayarlarınız tıpkı konsol Rust sürümünde olduğu gibi Documents/paferafileserver.cfg'de saklanacaktır.
Farklı kişilere farklı erişim seviyeleri sağlamak için çeşitli şifre seçenekleri mevcuttur.
Normalde herkes sadece sunucunuza bağlanarak dosyalarınızı görebilir, ancak bunların altında "Özel dosyaları etkinleştir" seçeneğini işaretlerseniz, okuma şifresi olmadan hiç kimse dosyalarınızı göremez.
Yazma parolası dosyaları yüklemek, taşımak, kopyalamak veya silmek için kullanılır. Bu olmadan, hiç kimse dosyalarınızı görüntülemek dışında sisteminize hiçbir şey yapamaz.
Kabuk parolası mobil uygulamada işe yaramaz, ancak masaüstü işletim sistemlerinde ve Android'deki Termux'ta çok kullanışlıdır. Keyfi sistem komutlarını çalıştırmanıza izin verir, bu da onu aynı anda hem çok güçlü hem de çok tehlikeli hale getirir. Bu özellik varsayılan olarak devre dışıdır ve her ikiniz de bir kabuk parolası girmelisiniz Ve Kullanmak için aşağıdaki "Kabuk komutlarını etkinleştir" seçeneğini işaretleyin.
Çeşitli etkinleştirme ve devre dışı bırakma seçenekleri, diğer kişilerin sisteminize neler yapabileceğini seçmenize olanak tanır hatta ne zaman zaten doğru parolaya sahipler. Bunlar diğer tüm seçenekleri geçersiz kılar, bu nedenle dosyaları kopyalamayı devre dışı bırakırsanız, hiç kimse - siz bile - dosyaları kopyalayamaz.
Özel seçenek "SSH Keycheck'i Devre Dışı Bırak", farklı cihazlar arasında dosyaları ileri geri senkronize ederken sürekli dolaşan benim gibi kişiler içindir. Normalde, SSH, IP adresi değişmiş bir sisteme bağlanırken, o sistemin kimliği zaten biliniyor olsa bile onay ister. Bu seçenek, SSH bağlantılarını onaylamak için konsola inmeden farklı ağlardaki dosyaları otomatik olarak senkronize etmenizi sağlar. Kendinizin kontrol edemediği ağlarda dikkatli kullanın.
Termux veya masaüstü ortamında çalışmanın aksine, iOS ve Android uygulamalarının bir kabuğa, rsync'e, ImageMagick'e veya FFMpeg'e erişimi yoktur, bu nedenle gelişmiş senkronizasyon ve kod dönüştürme özelliklerinin tümü devre dışıdır.
Mobil işletim sistemleri arka plandaki uygulamaları her an sonlandırabildiğinden, zamanlanmış otomatik görevler de devre dışı bırakılmıştır.
Tüm bu yönler için olası geçici çözümler var, ancak bu özellikleri entegre etmek için gereken zaman şu anda benim amacımın ötesinde. Eğer biri bana bunları eklemem için ödeme yapmakla ilgilenirse, o zaman ne olacağını göreceğiz. 😁
Tüm projelerimde olduğu gibi, kaynak kodu Codeberg'de barındırılıyor ve burada bulundu .
Önceden derlenmiş ikili dosyalar için şunları yapabilirsiniz: sürüm dizinine buradan göz atın ...
Veya aşağıdaki bağlantılara tıklamanız yeterli:
Apple imzalama gereklilikleri nedeniyle, iOS ve OSX kullanıcıları uygulamanın App Store'da yayınlanmasını beklemeli veya kaynak kodunu indirip kendi cihazlarınız için kendi sürümünüzü derlemelidir.
Bu yeni bir sürüm olduğundan, çeşitli sistemlerde bol miktarda hata ve garip davranış olacağından eminim. Bu uygulamayı benim için beta test etmek isterseniz, lütfen bana cihazınızı ve işletim sistemi sürümünüzü içeren bir e-posta gönderin ve sizi TestFlight'ta ayarlayacağım.
Flutter uygulamasını dağıtmak aslında Rust sürümünden çok daha karmaşıktır, burada tek bir yürütülebilir dosya yükleyip her şeyi bitiriyorum, bu yüzden Apple'ın uygulamamı kontrol edip iOS App Store'a girmesine izin vermesinin üç hafta sürmesini anlayışla karşılayın. Apple'ın AB kararına göre üçüncü taraf uygulamalarına izin vermesi gerektiğinde işler çok daha kolay olmalı.
Her zamanki gibi, bu uygulamayı faydalı bulmanızı umuyorum ve kendi amaçlarınız için özelleştirmek isterseniz, teknik danışman olarak her zaman hizmetinizdeyim. İyi eğlenceler!
Yazar Hakkında |
|
![]() |
Jim, 90'larda bir IBM PS/2 aldığından beri programlama yapıyor. Bugüne kadar, hala HTML ve SQL'i elle yazmayı tercih ediyor ve işinde verimliliğe ve doğruluğa odaklanıyor. |