გსურთ სწრაფი შესავალი? უბრალოდ უყურეთ ზემოთ მოცემულ ვიდეოს!
გასულ წელს გამოვაქვეყნე კომუნალური პროგრამა სახელწოდებით Pafera ფაილური სერვერი . ეს არის Rust-ში დაწერილი კონსოლის აპი, რომელიც აწარმოებს ვებ ფაილების მენეჯერს თქვენი მოწყობილობებისთვის, რაც საშუალებას გაძლევთ მარტივად გააზიაროთ ფაილები ყველაფერთან, რომელსაც აქვს ვებ ბრაუზერი მოსახერხებელი სლაიდ შოუს ფუნქციით, რათა აჩვენოს თქვენი ფოტოები და შიბას ხატები. ეს ნიშნავს, რომ შეგიძლიათ წახვიდეთ წვეულებაზე და მისცეთ 200 მეგობარს საშუალება, დაათვალიერონ თქვენი ბოლო შვებულების ფოტოები საკუთარი ტელეფონებით, თავის დროზე და ტემპში.
მოგვიანებით, როცა მეგობრებისა და ინტერნეტის შემთხვევითი უცნობების მხრიდან მოვიდა სხვადასხვა წინადადებები და გამოყენების ნიმუშები, დავიწყე უფრო და უფრო მეტი ფუნქციების დამატება. ახლა მას შეუძლია მთელი კატალოგის ხეების სინქრონიზაცია, მედია ფაილების ტრანსკოდირება, ფაილების გახსნა ოპერაციული სისტემის მშობლიური აპებით და ფაილების ავტომატურად სინქრონიზაცია თქვენს მოწყობილობებზე.
თუმცა, როგორც კონსოლის აპლიკაცია, ყოველთვის იყო ერთი დიდი პრობლემა, რომელიც ხელს უშლიდა მას უნივერსალური გადაწყვეტა ყოფილიყო ყველა თქვენი მოწყობილობისთვის:
კონსოლის აპები არ მუშაობს iOS-ზე, რაც იმას ნიშნავს, რომ თქვენ ვერ გაუშვით Pafera ფაილური სერვერი iPhone-ებზე და iPad-ებზე...
აქამდე.
მე მქონდა თავისუფალი დრო საშობაო არდადეგებზე, სანამ მონტენეგრო დღესასწაულებს აღნიშნავდა, ამიტომ ექსპერიმენტი ჩავატარე მრავალპლატფორმული კომპანიონი აპლიკაციის დაწერაზე Flutter/Dart-ში, რომელიც საშუალებას მოგცემთ მარტივად დაათვალიეროთ სერვერები თქვენი ტელეფონიდან. ამ გზით, ჩემს ნაკლებად ტექნოლოგიურ მეგობრებს შეეძლოთ ორი ღილაკის დაჭერა და ჩემს სერვერებთან დაკავშირება.
გზაში მივხვდი, რომ თქვენ შეგეძლოთ Dart-ის გამოყენება საკუთარი ვებ სერვერის გასაშვებად iOS მოწყობილობებზე და ვფიქრობდი...
ჰეი! რატომ არ ვახორციელებ ფაილების სერვერს Dart-ში?
ასე რომ, ორი კვირის შემდეგ, აპლიკაცია აქ არის.
ახლა შესრულება საშინლად ნელია Rust ვერსიასთან შედარებით. Rust სერვერს შეუძლია მოემსახუროს დაახლოებით 40000 მოთხოვნას წამში...
მაშინ როცა Dart ვერსიას შეუძლია მოემსახუროს მხოლოდ 400...
მაგრამ მთავარია ის მუშაობს...
და ის დაინსტალირდება iPhone-ებზე!
Flutter-ის უახლესი ვერსიების PDFx ბიბლიოთეკაში შეცდომის გამო, მე მომიწია შეწყვიტა ლამაზი ხატების გამოყენება ყველა ღილაკისთვის, რადგან ისინი გამოჩნდნენ მახინჯი შავი ხაზების სახით.
თუმცა, ძირითადი ოპერაცია იგივე რჩება.
როგორც კი ყველა დაუკავშირდება იმავე WiFi ქსელს ან თქვენი ტელეფონის ცხელ წერტილს, უბრალოდ დააწკაპუნეთ აპის ხატულაზე, აირჩიეთ საქაღალდე, რომლის გაზიარებაც გსურთ და შეეხეთ „სერვერის დაწყებას“.
შემდეგ დააწკაპუნეთ QR კოდის ღილაკზე, მიეცით საშუალება თქვენს მეგობრებს დაასკანირონ იგი და შემდეგ მათ შეუძლიათ სიამოვნებით დაათვალიერონ თქვენი საქაღალდე ტელეფონებით, თუნდაც ფილმების გადატანა თქვენი ტელეფონიდან პირდაპირ ტელეფონებში.
თუ თქვენი მეგობარი იყენებს ლეპტოპს ან დესკტოპ კომპიუტერს, არც ეს არის პრობლემა. უბრალოდ ჩაწერეთ მათ მოწყობილობაზე QR კოდის ზემოთ ნაჩვენები URL და მათ შეუძლიათ იგივე გააკეთონ.
თუ თქვენ არ მუშაობთ iOS-ზე ან Android-ზე, არც ეს არის პრობლემა. Flutter Apps კარგად მუშაობს OSX-ზე, Windows-სა და Linux-ზე, ასე რომ თქვენ მიიღებთ იგივე ფუნქციონირებას და კიდევ უფრო მეტს, თუ თქვენს სისტემაზე დააინსტალირებთ rsync, FFMpeg და ImageMagick აპის გამოსაყენებლად.
ფაილების მარტივი გაზიარების გარდა, საკმაოდ მოწინავე ფუნქციებია, ამიტომ აქ სწრაფ მიმოხილვას მივცემ.
ჰოსტის სახელი არის ის, რაც აჩვენებს სხვა მოწყობილობებს, როდესაც ისინი დააწკაპუნებენ „სხვა სერვერების ძიებაზე“. თქვენ შეგიძლიათ გამოიყენოთ იგი ერთი მოწყობილობის მეორისგან სწრაფად გასარჩევად, თუ ერთდროულად რამდენიმე მოწყობილობას აზიარებთ.
საქაღალდე არის ფაილური სისტემის საქაღალდე, რომელსაც თქვენ რეალურად აზიარებთ. შეგიძლიათ დააჭიროთ "დოკუმენტების საქაღალდის გამოყენებას"; ნაგულისხმევად დოკუმენტებში/გაზიარებული, ან შეგიძლიათ დააწკაპუნოთ "საქაღალდის არჩევა" სხვა საქაღალდის ასარჩევად. შესაძლოა ასევე დაგჭირდეთ დააწკაპუნოთ „დოკუმენტების საქაღალდის გამოყენება“; თუ iOS სწორად არ განაახლებს აპის პარამეტრებს ძილისგან განახლებისას.
მიმდინარე IP-ის გამოყენება ავტომატურად ამოიცნობს თქვენი მოწყობილობის მიმდინარე WiFi IP-ს. როგორც "გამოიყენე დოკუმენტების საქაღალდე," გამოიყენეთ ის, თუ iOS არ განაახლებს აპს სწორად და ის კვლავ იყენებს IP-ს წინა WiFi ქსელიდან.
"გაზიარება ყველა ინტერფეისზე" საჯარო IP-ს აყენებს 0.0.0.0, რაც იმას ნიშნავს ყველას ყველაფერზე, ვისთანაც დაკავშირებული ხართ, თქვენი სერვერის ნახვას შეძლებთ. მოსახერხებელია დესკტოპებზე ერთზე მეტი კავშირით, მაგრამ ფრთხილად იყავით მისი გამოყენება საჯარო ადგილებში.
"დაიწყე გაზიარება" გაუშვებს სერვერს და გახსნის მთავარ გვერდს, რომ მართოთ. მასზე ხელახლა დაწკაპუნება შეაჩერებს სერვერს და დაიცავს თქვენს ფაილებს.
"ბოლო პარამეტრების ჩატვირთვა" და "მიმდინარე პარამეტრების შენახვა" გააკეთე ზუსტად ის, რასაც ამბობენ. თქვენი პარამეტრები შეინახება Documents/paferafileserver.cfg-ში, ისევე როგორც კონსოლის Rust ვერსია.
პაროლის სხვადასხვა ვარიანტები არსებობს, რათა სხვადასხვა ადამიანს მისცეს სხვადასხვა დონის წვდომა.
როგორც წესი, ყველას შეუძლია თქვენი ფაილების ნახვა მხოლოდ თქვენს სერვერთან დაკავშირებით, მაგრამ თუ შეამოწმებთ "პირადი ფაილების ჩართვას" მათ ქვემოთ, მაშინ ვერავინ შეძლებს თქვენი ფაილების ნახვას წაკითხული პაროლის გარეშე.
ჩაწერის პაროლი გამოიყენება ფაილების ატვირთვის, გადატანის, კოპირების ან წასაშლელად. ამის გარეშე ვერავინ ვერაფერს გააკეთებს თქვენს სისტემას, გარდა თქვენი ფაილების ნახვისა.
Shell-ის პაროლი გამოუსადეგარია მობილურ აპლიკაციაში, მაგრამ ძალიან სასარგებლოა დესკტოპის ოპერაციულ სისტემებზე და Termux-ზე Android-ზე. ის საშუალებას გაძლევთ გაუშვათ სისტემის თვითნებური ბრძანებები, რაც მას ძალიან მძლავრ და ამავე დროს ძალიან სახიფათო ხდის. ეს ფუნქცია ნაგულისხმევად გამორთულია და ორივემ უნდა შეიყვანოთ shell პაროლი და შეამოწმეთ "ჭურვის ბრძანებების ჩართვა" ქვემოთ გამოსაყენებლად.
ჩართვისა და გამორთვის სხვადასხვა ვარიანტები საშუალებას გაძლევთ აირჩიოთ, რისი გაკეთება შეუძლიათ სხვა ადამიანებს თქვენს სისტემაში მაშინაც კი, როცა მათ უკვე აქვთ სწორი პაროლი. ეს უგულებელყოფს ყველა სხვა ვარიანტს, ასე რომ, თუ თქვენ გამორთავთ ფაილების კოპირებას, ვერავინ - თვით თქვენც კი - ვერ შეძლებს ფაილების კოპირებას.
სპეციალური ვარიანტი "SSH Keycheck-ის გამორთვა" განკუთვნილია ჩემნაირი ადამიანებისთვის, რომლებიც გამუდმებით ტრიალებენ ფაილების სინქრონიზაციისას სხვადასხვა მოწყობილობებს შორის. ჩვეულებრივ, SSH ითხოვს დადასტურებას სისტემასთან დაკავშირებისას, რომლის IP მისამართი შეიცვალა, მაშინაც კი, თუ ამ სისტემის ვინაობა უკვე ცნობილია. ეს პარამეტრი საშუალებას მოგცემთ ავტომატურად დაასინქრონინოთ ფაილები სხვადასხვა ქსელში, კონსოლში ჩავარდნის გარეშე SSH კავშირების დასადასტურებლად. გამოიყენეთ იგი სიფრთხილით, როდესაც იმყოფებით ქსელებში, რომლებსაც თავს არ აკონტროლებთ.
Termux-ში ან დესკტოპის გარემოში გაშვებისგან განსხვავებით, iOS და Android აპებს არ აქვთ წვდომა shell-ზე, rsync-ზე, ImageMagick-ზე ან FFMpeg-ზე, ამიტომ სინქრონიზაციისა და ტრანსკოდირების ყველა გაფართოებული ფუნქცია გამორთულია.
იმის გამო, რომ მობილური ოპერაციული სისტემები ნებისმიერ დროს კლავს ფონურ აპებს, დროული ავტომატური ამოცანები ასევე გამორთულია.
ყველა ამ ასპექტისთვის შესაძლებელია გამოსავალი, მაგრამ ამ ფუნქციების ინტეგრირებისთვის საჭირო დრო ამჟამად ჩემს განზრახვას აღემატება. თუ ვინმეს აინტერესებს, რომ გადამიხადო მათ დასამატებლად, ვნახოთ, რა მოხდება. 😁
როგორც ყველა ჩემს პროექტში, წყაროს კოდი განთავსებულია Codeberg-ზე და შეიძლება იყოს ნაპოვნია აქ .
წინასწარ შედგენილი ბინარებისთვის შეგიძლიათ დაათვალიერეთ გამოშვების დირექტორია აქ ...
ან უბრალოდ დააჭირეთ ქვემოთ მოცემულ ბმულებს:
Apple-ის ხელმოწერის მოთხოვნების გამო, iOS და OSX-ის მომხმარებლებმა უნდა დაელოდონ აპლიკაციის ხელმისაწვდომის App Store-ში, ან ჩამოტვირთოთ საწყისი კოდი და შეადგინონ თქვენი საკუთარი ვერსია თქვენი მოწყობილობებისთვის.
ვინაიდან ეს არის ახალი გამოშვება, დარწმუნებული ვარ, რომ იქნება უამრავი შეცდომა და უცნაური ქცევა სხვადასხვა სისტემაში. თუ გსურთ ამ აპის ბეტა ტესტირება ჩემთვის, გთხოვთ გამომიგზავნოთ ელ.წერილი თქვენი მოწყობილობისა და ოპერაციული სისტემის ვერსიით და მე დაგიყენებთ დაყენებას TestFlight-ზე.
Flutter აპლიკაციის გავრცელება რეალურად ბევრად უფრო რთულია, ვიდრე Rust ვერსია, სადაც მე უბრალოდ ვტვირთავ ერთ შესრულებადს და დავასრულებ, ასე რომ, გთხოვთ, გაითვალისწინოთ, როდის დასჭირდება Apple-ს სამი კვირა ჩემი აპლიკაციის შესამოწმებლად და მის iOS-ში დაშვებას. App Store. საქმეები ბევრად უფრო ადვილი უნდა იყოს, როდესაც Apple-ს მოეთხოვება მესამე მხარის აპების დაშვება ევროკავშირის დადგენილების შესაბამისად.
როგორც ყოველთვის, ვიმედოვნებ, რომ ბიჭებო, ეს აპლიკაცია თქვენთვის სასარგებლო იქნება და თუ გსურთ მისი მორგება თქვენი მიზნებისთვის, მე ყოველთვის ხელმისაწვდომი ვარ როგორც ტექნიკური კონსულტანტი. გაერთეთ!
ავტორის შესახებ |
|
![]() |
ჯიმი პროგრამირებას აგრძელებს მას შემდეგ, რაც მან მიიღო IBM PS/2 90-იან წლებში. დღემდე ურჩევნია HTML-ისა და SQL-ის ხელით წერა და სამუშაოს ეფექტურობასა და სისწორეზე აკეთებს აქცენტს. |