Трябва ли споделянето на файлове с приятел да е толкова трудно?

Представяме ви Pafera File Server, малкият Android сървър, който се превърна в пълноценен файлов мениджър, програма за преглед на слайдшоу и медиен сървър
2023-04-17 22:41:37
👁️ 840
💬 0

Съдържание

  1. Въведение
  2. Кандидатите
  3. Решението
  4. И така, как работи това?
  5. Инсталиране на сървъра
  6. Преглеждане на файлове
  7. Системното меню
  8. Менюто Файл
  9. Използване на слайдшоуто
  10. Конфигурация
  11. Бъдещи планове

Въведение

Уау! Това наистина е страхотно. Можете ли да споделите това с мен?

Тъй като съм технологичен човек, който постоянно има нови джаджи и приложения, не мога да си спомня колко пъти някаква версия на горната фраза ми е била казана на партита, срещи или дори в чакане на метрото.

Определено обаче мога да си спомня колко пъти сме стигнали до следния обмен:

аз Разбира се! какво използваш
приятел Е, имам приложение А.
аз Хм... нямам това. Имате ли приложение B?
приятел Не, аз също нямам това. Имате ли метод C?
аз окей Нека опитаме това. Хм... не се свързва. Какво ще кажете да използваме метод D?
приятел Това също не работи.

Споделянето на файл е обичайна задача, откакто компютрите станаха нещо още през тъмните векове. Първо, нетърпеливите програмисти щастливо разглеждаха разпечатките един на друг, след това се стигна до копиране на перфокарти. След това магнитните дискове се превърнаха в новата гореща тенденция, след което технологията се премести към оптични дискове, флаш дискове и безжични трансфери.

Изглежда обаче, че все още сме на етап, в който след 70 години не можем лесно да споделяме сладки видеоклипове на shiba, без да скачаме през обръчи, да изтегляме странни приложения или да прибягваме до бавни безжични трансфери.

Какво ще кажете да опитаме нещо различно?

Кандидатите

Но Джим, аз споделям файлове всеки ден без проблеми, казваш?

Е, нека да разгледаме често срещаните методи, които хората използват за прехвърляне на файлове.

Метод Неуспех
1. AirDrop Можете ли да използвате AirDrop към телефон с Android? Добре тогава!
2. Споделяне наблизо Можете ли да споделяте файлове наблизо с iPhone? Хм...
3. AirDroid, SHAREit, Resilio Sync, Send Anywhere и др... Ще кажете ли на някой на автобусна спирка бързо да инсталира същото приложение като вас, само за да може да получи файл? Добре тогава!
4. Програма за чат Много програми за чат ограничават видовете файлове, които можете да изпращате, компресират повторно вашите HD видеоклипове и трябва да изчакате файлът да се качи бавно и след това да го изтеглите на устройството на приятеля си. Също така се натъкваме на проблема с метод 3, при който трябва да имате инсталирана същата програма за чат, за да прехвърляте файлове.
5. Bluetooth Дори с Bluetooth 5, прехвърлянето на 700MiB HD видео е като да гледате боята да изсъхва във влажно време във Флорида.
6. Имейл Повечето имейл услуги ограничават размера на прикачения файл и това е дори по-бавно от прехвърлянето чрез програми за чат. Въпреки това винаги съм намирал за доста забавни историите на потребители на iPhone, изпращащи файлове на себе си, за да могат да отпечатат документ. ;)
7. DropBox, OneDrive и др... Среща същите проблеми при качване/изтегляне като методи 3 и 4.
8. USB флаш устройство Всъщност доста изпълним и бърз, но трябва да запомните да носите един със себе си и да имате правилния адаптер за свързване с устройството на вашия приятел. Аз самият държа такъв в джобовете си през цялото време, но е доста важно дали устройството на човека, с когото споделяте, ще поддържа вашето устройство.
9. Накарайте приятеля си да направи снимка/видео на екрана на телефона ви с камерата на телефона си! 100% успеваемост при прехвърляне на данни с лошо качество!
Какво се случва, когато споделянето не работи?

Нещата не изглеждат добре за нас в момента, нали?

Решението

Накратко, за да бъдем ефективно, универсално решение, се нуждаем от нещо, което

  1. Може да се използва на всяко устройство
  2. Поддържа директен WiFi трансфер без качване на сървър и обратно
  3. Няма да компресира отново нашето 4K видео в 480p.
  4. Работи там, където дори не можем да получим телефонен сигнал

Сега, само ако имаше нещо, което идва предварително инсталирано на всяко устройство, е предназначено за достъп до други компютри с общоприет протокол и има способността да качва/изтегля файлове...

нещо...

като...

а...

уеб браузър!

Windows CE поддържа ли HTML 5? Страхотно!

И така, как работи това?

И така, как работи уеб браузърът за прехвърляне на файлове?

Има три основни стъпки.

  1. Свържете и двете устройства към една и съща безжична мрежа/гореща точка
  2. Позволете на вашия приятел да въведе адреса на вашето устройство в своя браузър
  3. Преглеждайте, преглеждайте, изтегляйте и качвайте колкото искате
Дори през 2023 г. използването на собствената гореща точка на вашия телефон все още е най-бързият начин за прехвърляне на файлове, особено ако сте на разходка в планината!

Предимствата на този подход са

  1. Работи на всяко устройство, което има уеб браузър (т.е. почти всичко в наши дни)
  2. Не е нужно да щракнете върху всеки файл поотделно, да натиснете изпращане и да изчакате вашият приятел да приеме. Вашият приятел може да види какво иска и сам да изтегли файлове.
  3. Можете да имате цяла група хора, които разглеждат едновременно, вместо един по един.

Разбира се, този сървър няма да работи на iPhone и iPad, защото Apple не само ограничава достъпа до файловата система на iOS устройства, но също така не можете да стартирате Linux програми, освен ако не сте руутнати с Cydia .

За щастие, всичко, от което се нуждаете, е *едно* устройство, за да стартирате сървъра, така че вашите приятели от Apple да могат да се свързват с вашия телефон с Android без никакви проблеми и да изтеглят и качват файлове. Освен това те вече са свикнали да не могат да използват други системи, тъй като AirDrop работи само за устройства на Apple. ;)

Инсталиране на сървъра

За бързина и ефективност, файловият сървър на Pafera е приложение за Linux/Windows, написано на Rust, така че за съжаление не можете просто да го изтеглите от магазина за приложения. Може да направя версия на магазин за приложения в Kotlin по-късно, ако някой е готов да ми плати за нея, но освен ако не сте Джери Магуайър, засега ще трябва да се задоволите с версията на Rust.

За щастие, много програмисти с отворен код, много по-интелигентни от мен, се събраха, за да създадат приложения, които ви позволяват да стартирате Linux програми на вашия телефон с Android с различни нива на успех.

Следователно всичко, което трябва да направите, е да инсталирате Termux на телефона си, да копирате и поставите две команди и да натиснете Enter няколко пъти. Това не е инсталиране с едно щракване, но и SpaceX не изгражда StarShip и ще получите достъп до цяла друга екосистема от готини програми, с които да играете.

Това е вашият мозък за наркотици... ъъъъ... телефон на Термукс.

Следователно инсталирането е както следва:

  1. Изтеглете приложението Termux от F-Droid или от Codeberg
  2. Стартирайте приложението
  3. Копирайте и поставете следното в терминала и натиснете enter.

    curl -O https://pafera.com/installfileserver.sh
    
  4. Копирайте и поставете още една команда в терминала и натиснете enter.

    bash installfileserver.sh
    
  5. Натиснете Enter на клавиатурата си за всички подкани, които се появяват по време на процеса на надграждане на пакета.
  6. Накарайте приятеля си да въведе URL адреса, показан на екрана.

    Намиране на URL сред дисплея

Сега, след като инсталирате сървъра, можете да излезете по всяко време, просто като излезете от сесията на Termux.

И ако искате да стартирате сървъра отново с парола, която позволява промени, тогава въведете

./paferafileserver password=yourpasswordhere

в Termux или просто натиснете стрелката нагоре, за да изберете въведените преди това команди.

Не е толкова лесно, колкото просто да издърпате известията си и да докоснете "Споделяне наблизо" но също така няма да стартирате сървъра случайно и получавате много повече функционалност за вашите проблеми.

Ако случайно сте програмист на Rust, инсталирането е много по-лесно за вас.

Всичко, което трябва да направите, е да напишете

cargo install paferafileserver

Изчакайте товарът да свърши работата си и готово! Вие сте готови!

Ако искате да стартирате Pafera File Server на Windows или Linux, предварително изградените двоични файлове са налични по-долу в 7-цип архиви.

  1. Linux (amd64)
  2. Termux на Android 7+
  3. Linux (armv7h за Debian в Userland - Android 5 и 6)
  4. Windows самостоятелен exe
  5. Windows пълен (включително FFMpeg и ImageMagick)

Преглеждане на файлове

След като вашият приятел успее да въведе URL адреса на вашия сървър в неговия или нейния браузър, телефонът му трябва да изглежда по следния начин.

Начална страница на файловия сървър на Pafera

Ако не виждате никакви файлове, уверете се, че вашият приятел е активирал JavaScript, тъй като ние използваме скриптове за сортиране и показване на файлове.

Като бърз пример, започвайки от горния ляв ъгъл, е бутонът на системното меню, бутонът за последните файлове и бутонът за началната директория.

Щракване върху файлове

Щракването върху която и да е миниатюра на изображение ще започне слайдшоу, докато щракването върху името на файла ще изтегли файла.

Щракването върху бутона на менюто за файл ще отвори менюто с действия за този файл, докато щракването върху квадратчето под него ще избере файла.

За да изберете бързо диапазон от файлове, щракнете върху бутона за избор за първия файл, след това щракнете върху бутона за меню за последния файл и изберете "Изберете тук".

Системното меню

Изскачащият прозорец на системното меню

Търсене и дълбоко търсене (бързи клавиши t и f) ви позволяват да въведете няколко букви и да видите всички файлове, които съдържат тези букви.

Разликата е, че нормалното търсене преглежда само файловете в текущата папка, докато Deep Search преглежда и всички папки в тази папка.

Слайдшоу и дълбоко слайдшоу (бързи клавиши z и x) следват същата логика. Изберете това, което искате въз основа на това дали искате да включите изображения във всички папки в тази папка или не.

Превключване на изглед (Бърза клавишна комбинация v) се променя от нормален изглед с детайли към изглед с икони на всички изображения и видеоклипове в тази папка.

Сортиране (бързи клавиши s) ви позволява да изберете как да бъдат подредени файловете. Можете да изберете да използвате името, размера, датата и часовата разлика на файла, за да сортирате файловете. Аз лично предпочитам изгледа на часовата разлика, като "Преди пет минути" за мен е много по-полезен от "14:55".

Изгледът Последни файлове (Бърза клавишна комбинация e) ще ви покаже последните променени 512 файла в текущата папка и всички папки в тази. Бъдете внимателни, като използвате този изглед за вашата домашна папка, тъй като може да отнеме известно време, за да проверите всички файлове, ако имате стотици хиляди малки файлове за проверка.

Set Password (Hotekey w) ще позволи на вашия приятел да въведе паролата, за да променя, качва и изтрива файлове. Без тази парола никой не може да промени нищо на телефона ви, така че го пазете. Можете да го зададете или от командния ред, като напишете password=yaddayaddayadda или в paferafileserver.cfg, използвайки формата

{
  "password":"yaddayaddayadda"
}

Нова папка (бърз клавиш o) ще ви подкани за името на новата папка, която да създадете в текущата папка.

Показване на скрити файлове (бърз клавиш i) ще превключва показването на файлове и папки, започващи с точки, което Unix използва, за да покаже, че тези файлове обикновено не трябва да са видими за потребителя.

Включването на Изтегляне с едно кликване (бърза клавиша k) ще ви позволи незабавно да изтеглите файл, като щракнете върху него, вместо да се показва в браузъра ви.

Показване на бързи клавиши (Бърза клавиша h) ще ви покаже кои клавиши могат да се използват както в изглед на папка, така и в изглед на слайдшоу.

Увеличаване (бързи клавиши .) и намаляване (бързи клавиши ,) ще променят размера на всичко на екрана. Използвайте ги, за да персонализирате страницата си, ако размерите по подразбиране на вашата система не ви харесват.

Менюто Файл

Изскачащото меню „Файл“.

Изберете до тук ви позволява да изберете всички файлове между тези, които сте избрали преди това, и този път. Това е доста удобно като заместител, за да избегнете подмяната на менюто с десен бутон за копиране на връзки както на настолен компютър, така и на мобилно устройство.

Избор на всички (бърз клавиш a) и избор на нищо (бърз клавиш n) са ясни. Просто внимавайте, когато ги използвате, за да изтриете всички файлове, които сте наистина искате да изтриете всички файлове.

Изпращане (Бърза клавиша g) ще отвори прозорец за сканиране, където можете да видите всички други устройства, работещи с Pafera File Server във вашата мрежа.

Изпращане на файлове към друг сървър

Обърнете внимание, че всички устройства трябва да са в една и съща подмрежа и да работят на един и същи порт, така че ако сте на 192.168.0.100 и устройството, към което се опитвате да изпратите, е на 192.168.1.100, тогава скенерът няма да открие другото устройство. Разбира се, винаги можете просто да влезете в сървъра на това устройство и вместо това да качите файлове с помощта на вашия браузър.

За простота всички файлове, които изпращате на друго устройство, се събират в папка, наречена "Получени" под корена на сървъра. Може да променя това по-късно, но засега е удобно всички нови файлове да се показват в същата папка, където можете да ги преместите на подходящото място по-късно.

Новият файл в папката Received

Изтегляне (Бърза клавиша l), Преименуване (Бърза клавиша r), Преместване (Бърза клавиша m), Копиране (Бърза клавиша c), Изтриване (Бърза клавиша d) и Постоянно изтриване (p) всички те могат да работят върху множество файлове едновременно, с изключение на изтегляне на мобилни браузъри, където можете да изтегляте само един файл наведнъж. Просто бъдете внимателни, защото Permanent Delete наистина означава Постоянно Изтриване. Винаги съхранявайте копие на вашите важни файлове на друго устройство, преди да докоснете бутона за изтриване.

Възстановяване на изтриване (бърз клавиш u) се използва само за файлове, които са били изтрити веднъж и следователно имат ".deleted" разширение. то не може върнете окончателно изтритите файлове. Тези не са тъгуващи. Те преминаха. Тези файлове вече ги няма. Те са бивши досиета.

Използване на слайдшоуто

Интерфейсът на слайдшоуто. Всичко в долната част може да се кликне.

Сред най-добрите функции, които хората винаги искат в браузъра на файлове, е доброто слайдшоу. Когато носите около 6000 снимки на сина си в телефона си, за да се покажете на случайни непознати, не е трудно да разберете защо. ;) Повечето клиенти за малки и средни предприятия нямат визуализации на изображения или слайдшоута, така че опитът да се намери определено изображение с помощта на приложението iPhone Files е доста разочароващо за използване.

Функцията Slide Show в Pafera File Server може да се активира по няколко различни начина:

  1. Кликнете върху миниатюрата на изображение.
  2. Изберете "Слайдшоу" от системното меню.
  3. Изберете "Deep Slide Show" от системното меню.
  4. Направете търсене или дълбоко търсене, за да изберете файловете, които искате да покажете, и тогава кликнете върху миниатюрата на първото изображение.

Независимо от начина, по който стартирате слайдшоуто, най-отгоре ще има бутон за изтриване с името на текущото изображение и лента с инструменти в долната част, съдържаща функции за рандомизиране, завъртане, изход, напред и назад.

Ако искате да отидете до определен номер на изображение, просто щракнете върху позицията на изображението в лентата с инструменти, въведете номера, който искате, и отидете оттам.

Избор на номер, към който да отидете

Слайдшоуто поддържа жестове с плъзгане, които всъщност са предпочитаният от мен метод за навигация в телефона. Всичко, което трябва да направите, е да плъзнете леко палеца си наляво, за да отидете на предишното изображение, надясно, за да отидете на следващото изображение, нагоре, за да изтриете текущото изображение, или надолу, за да излезете от слайдшоуто.

Ако сте на лаптоп или имате bluetooth клавиатура, свързана към телефона ви, използването на слайдшоуто става още по-лесно.

Стрелка наляво Предишно изображение
Стрелка надясно Следващо изображение
Стрелка нагоре Изтриване на изображението
Стрелка надолу/бягство Излезте от слайдшоуто
r Случайно изображение
ж Отидете до номера на изображението
р Завъртете на 90 градуса обратно на часовниковата стрелка
д Завъртете на 90 градуса по часовниковата стрелка

Конфигурация

Файловият сървър на Pafera може да бъде конфигуриран от JSON файл с име paferafileserver.cfg в същата папка или от аргументи на командния ред във формата ключ=стойност. Ако и двете са посочени, тогава аргументите на командния ред ще заменят настройките на конфигурационния файл.

Общ команден ред е

paferafileserver [hostname=localhost] [serverroot=/home/jim] [password=password] [ip=0.0.0.0] [port=9999]

По този начин, ако искате да обслужвате директорията с картини на Джим на всички посетители на порт 5000, бихте използвали

paferafileserver serverroot=/home/jim/Pictures port=5000

Ако не посочите serverroot, по подразбиране ще бъде вашата домашна директория.

Ако не посочите ip и порт, по подразбиране ще бъде 0.0.0.0:9999.

Освен това следните опции могат да бъдат въведени в командния ред за деактивиране на определени функции, дори ако потребителят има правилната парола.

disabledelete
disablerename
disablemove
disablecopy
disablenewfolder
disabledelete
disablepermanentdelete
disablesend
disableupload

Всички аргументи на командния ред могат също да бъдат посочени в JSON файл, наречен paferafileserver.cfg в текущата папка, като например

{
  "hostname":               "JimsLaptop",
  "password":               "SecretPassword12345",
  "disabledelete":          1,
  "disablepermanentdelete": 1
}

Можете да изберете кой метод работи най-добре за вас.

За Windows често е най-лесно да създадете пряк път към изпълнимия файл и да посочите вашите аргументи в пряк път.

За Termux на Android най-лесният начин за стартиране на изпълнимия файл е да инсталирате приложението Termux Widget от F-Droid и да конфигурирате командния ред в скрипта на изпълнимия модул.

Бъдещи планове

Понастоящем не са планирани допълнителни промени, тъй като това беше просто забавен въвеждащ проект за игра с Rust, но ако някой друг го направи

  1. Напишете версии на Kotlin/Swift, които да хвърляте в магазините за приложения
  2. Преведете това приложение за няколко езика
  3. Създавайте различни CSS теми
  4. Внедрете подобен на rsync алгоритъм за архивиране и възстановяване
  5. Или нещо друго, за което можете да се сетите

Със сигурност бих приветствал всякакви допълнения към този прост проект.

Както винаги, надявам се, че ще намерите това приложение за полезно и ако искате да го персонализирате за вашите собствени цели, винаги съм на разположение като технически консултант. Забавлявайте се!

За автора

Джим програмира, откакто получи IBM PS/2 през 90-те години. И до днес той все още предпочита да пише HTML и SQL на ръка и се фокусира върху ефективността и коректността в работата си.