Як організувати потокову передачу файлів з Raspberry Pi на смартфон
Рейтинг статті: / 5
НайгіршеНайкраще 
Pi-SambaНайкращим в Raspberry Pi (RPi) є те, що це відмінний навчальний пристрій. Розглянемо, як розвернути на Вашому RPi файловий сервер та організувати роздачу файлів.
Всупереч поширеній думці, не кожна задача сервера вимагає багато обчислювальної потужності. Наприклад, якщо Ви хочете завантажувати файли і ділитися ними з іншими користувачами мережі незалежно від їх операційної системи або пристрою, то Вам не потрібна машина з багатоядерним процесором. Справді, використання старого комп'ютера Linux титу Seedbox є популярним способом порятунку апаратного забезпечення, яке морально застаріло.
Єдиний недолік цього підходу полягає в тому, що старі комп’ютери споживають багато електроенергії. Більшість сучасних маршрутизаторів мають порт USB і можуть ділитися через включений в цей порт пристрій, з усіма комп'ютерами, підключеними до даного маршрутизатора. Але якщо у Вас старий маршрутизатор і хочете мати більше, ніж просто обмінюватися файлами?
З RPi Ви можете робити все це і багато іншого без витрат, пов'язаних з традиційним комп'ютером, і без обмежень таких спеціальних пристроїв, як маршрутизатори.
Збираємо компоненти
Pi--Server-1
Ми будемо використовувати RPi версії B з 512 Мб оперативної пам'яті, але все повинно нормально працювати і на старих версіях. Він буде оснащений останньою версією Raspbian. Найкраще в нових релізах те, що вони можуть використовувати всю збільшену пам'ять без будь-яких хитрощів. Вони також встановлюються з включений SSH, який дозволяє користувачам отримувати доступ і налаштовувати RPi навіть не підключаючи його до монітора.
Завантажте останню версію Raspbian дистрибутива і прошийте його на SD-карту, як про це ми розповідали в статті про початок роботи з Raspberry Pi. Хоча Ви можете використовувати бездротовий адаптер USB для підключення RPi до Інтернету, але краще використати порт Ethernet і підтягти кабель до маршрутизатора.
Після підключення і включення живлення RPi, відкрийте голову сторінку адміністратора маршрутизатора (перевірте маршрутизатор або його документацію для знаходження адреси). Цілком ймовірно, Ваш маршрутизатор використовує DHCP для роздачі IP-адрес підключеним пристроям.
Розкрийте інтерфейс адміністратора, подивіться список всіх підключених пристроїв і запишіть IP-адресу, призначену маршрутизатором для RPi. Пізніше Вам доведеться призначити йому статичну IP-адресу, щоб завжди забезпечити доступність до RPi за тією ж адресою.
На даний момент, давайте припустимо, що динамічна IP-адреса, призначена RPi, 192.168.3.100. За допомогою цього біта інформації ми маємо все для підключення до RPi і налаштування Raspbian через SSH.
Кожен дистрибутив Linux поставляється з клієнтом SSH. Користувачі Windows можуть використовувати інструмент PuTTY. Для підключення з віддаленої машини Linux запустіть термінал і введіть наступну команду:
$ sudo ssh Ця електронна адреса захищена від спам-ботів, Вам потрібно включити JavaScript для перегляду
Після згоди додати цю адресу до списку довірених вузлів, у Вас будуть запитані облікові дані для входу. На свіжому, неналаштованому Raspbian встановленим паролем за замовчуванням для користувача "pi" є "raspberry". З цього моменту, команди в цій статті будуть однаковими, незалежно від того, підключені Ви до RPi з Linux чи з Windows. Це тому, що команди виконуються на дистрибутиві Rasbian Linux на RPi.
Якщо це нова інсталяція, то Вам буде запропоновано спочатку налаштувати Rasbian, а потім іти далі. Для налаштування конфігурації введіть команду:
$ sudo raspi-config
Після цього з'явиться екран з великою кількістю варіантів. Перейдіть до нижньої частини списку і виберіть опцію Update, яка дозволить завантажити останню версію цієї утиліти конфігурування.
Як тільки це буде зроблено, RPi перезавантажиться і Ви матимете змогу відновити з’єднання з ним за допомогою команди SSH або PuTTY, як розглядалось раніше. Ви повинні будете робити це щоразу, коли буде необхідно налаштувати який-небудь параметр і перезапустити RPi.
Коли Ви повернетеся в утиліту, виберіть опцію expand_rootfs щоб дозволити розділу Raspbian взяти на себе весь простір SD-карти. Нарешті, виберіть опцію memory_split, яка дозволяє розділити RAM на RPi між GPU і CPU. Так як ми будемо отримувати доступ до Pi тільки через віддалене з'єднання, то переконайтеся, що Ви призначити «голий» мінімум пам'яті в GPU, всього 16MB.
Далі, Ви повинні додати інших користувачів в RPi. Це необхідно, щоб мати надалі змогу обмежувати доступ до певних каталогів на підключеному USB-пристрої для певних користувачів, а також до групи користувачів, і при цьому мати простір для публічного доступу на пристрої збереження.
$ sudo adduser bodhi
Команда додасть користувача і створить відповідні каталоги. Вона запросить пароль користувача та інші деталі. Потім додайте цього користувача в групу користувачів:
$ sudo usermod -a -G users bodhi
Встановлення та налаштування Samba
Pi-Putty-2
Коли закінчите, пора зробити RPi доступним для користувачів в Інтернеті. Для цього ми будемо використовувати Samba, яка дозволяє нам обмінюватися файлами через протокол Common Internet File System (CIFS). Щоб встановити Samba на RPi введіть:
$ sudo apt-get install samba samba-common-bin
Коли це буде зроблено, Ви повинні додати користувачів в Samba. Наприклад, для користувача за замовчуванням pi команда має вигляд:
$ sudo smbpasswd -a pi
Вам буде запропоновано ввести пароль. Як правило, безпечно використовувати той же пароль, що і пароль облікового запису користувача. Повторіть цей крок для кожного користувача системи.
Samba керується через файл конфігурації, який Вам потрібно налаштувати, перш ніж Ви зможете його використовувати. Завжди чудовою ідеєю є створити резервну копію файлів конфігурації перед внесенням змін:
$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.old
Тепер за допомогою текстового редактора nano з командного рядка відредагуйте файл конфігурації:
$ sudo nano /etc/samba/smb.conf
Знайдіть у файлі розділ відзначений Authentication (Автентичність). У даному розділі видаліть символ решітки на початку лінії, яка виглядає так, щоб #security = user виглядало як security = user
Це гарантує, що Samba дозволить тільки тим користувачам увійти в систему, у кого є домашні каталоги на RPi. Щоб дозволити користувачам доступ до їх власних домашніх каталогів, знайдіть розділ [homes] і переконайтеся, що browseable = yes і read only = no.
Для виходу з nano, натисніть Ctrl+X, щоб зберегти файл, а потім клавішу введення, коли Вам буде показане ім'я файлу. Щоразу, коли Ви вносите якісь зміни в будь-який сервіс, необхідно перезапустити його, щоб включити зміни. Щоб перезапустити Samba:
$ sudo service samba restart
Прийшов час підключити пристрій USB до RPi. Хоча RPi має кілька портів USB, але було б чудово включати будь-які додаткові пристрої USB за допомогою концентратора з додатковим живленням USB, особливо при підключенні великих USB-пристроїв зберігання, які споживають багато енергії.
Крім того, зверніть увагу на те, як диск відформатований. Багато флеш- накопичувачів USB за замовчуванням відформатовані в FAT32. Це може бути кращим форматом з точки зору підтримуваних операційних систем, але це безумовно гірше для обміну файлами через мережу.
Також є NTFS, яка використовується багатьма великими зовнішніми накопичувачами з інтерфейсом USB. Цей формат не для Вас, якщо хочете забезпечити мультимедійний потік від віддаленого диска, а найкраще це робити за допомогою EXT4. Використовуйте EXT4 тільки, якщо привід буде використовуватися через мережу або на машинах Linux.
Після підключення приводу, дізнайтеся про його місце розташування з sudo fdisk -l. Будуть перераховані пристрої, підключені до RPi і розділи на них. Проскануйте вихід і знайдіть диск, розмір якого відповідає USB диску, який Ви підключили. Пристрій, ймовірно, буде в sda і розділ, на якому ми хочемо змонтувати, sda1.
Створюємо точку монтування та монтуємо пристрій:
$ sudo mkdir /mnt/usb
$ sudo mount /dev/sda1 /mnt/usb
Привід USB залишиться встановлений до перезавантаження RPi. Щоб уникнути необхідності перемонтовувати пристрій, спочатку знайдіть його UUID:
$ sudo blkid
/dev/sda1: LABEL="ntfs" UUID="3B5C053D35CAD865" TYPE="ntfs"
Тепер додайте його в список пристроїв, які встановлюються при завантаженні:
$ sudo nano /etc/fstab
UUID=3B5C053D35CAD865 /mnt/usb ntfs defaults 0 0
Samba призначена для обміну файлами і папками, які визначені в конфігураційному файлі. Для загального доступу до папок на пристрої USB давайте припустимо, що маєте купу різних папок:
$ ls /mnt/usb documents downloads music videos
Щоб розшарити папку завантажень, відкрийте файл /etc/samba/smb.conf за допомогою nano, перейдіть вниз і введіть:
[Downloads]
comment = Place all your downloads here
Path = /mnt/usb/downloads
browseable = yes
writable = yes
read only = no
valid users = @users
Цей блок тексту розшарить директорію /mnt/usb/downloads для усіх користувачів в групі користувачів. Пізніше ми змонтуємо цю директорію на комп'ютерах Linux і Windows. Користувачі зможуть мати можливість з будь-якого комп'ютера в мережі налаштувати свої менеджери закачувань для збереження файлів безпосередньо в цю папку на пристрої USB, приєднаного до RPi,.
Ви також можете обмежити доступ до деяких папок тільки певним користувачам:
[Documents]
comment = Important eyes-only PDF files
path = /mnt/usb/documents
browseable = no
writable = yes
read only = no
valid users = pi, bodhi
Це дозволить тільки користувачам pi і bodhi монтувати і змінювати вміст папки.
Встановлення сервера торрентів
Pi-Transmission-3
Торренти є переважними середовищем для обміну контентом з відкритим вихідним кодом. Більшість дистрибутивів Linux також поширюються таким чином через власні трекери або через linuxtracker.org.
Тому не бракує торрент-клієнтів для робочого столу Linux. Що відрізняє Transmission від інших - це простий для використанні веб- інтерфейс, який нагадує подібний для десктопа. Ми встановимо Transmission на Raspbian і звертатимемося до нього з будь-якого браузера на будь-якому комп'ютері, щоб додавати, моніторити та керувати торрентами.
Для встановлення Transmission входимо через SSH на RPi і вводимо:
$ sudo apt-get install transmission-daemon
Це дозволить встановити і запустити демон Transmission. Але, перш ніж Ви зможете використовувати його для завантаження торрентів, необхідно його налаштувати. Перед внесенням будь-яких змін у файл конфігурації Transmission переконайтеся, що демон не запущений:
$ sudo service transmission-daemon stop
Крім того, перед тим як рухатися далі, додайте користувача передачі (debian-transmission) , який створився автоматично при встановленні демона, до нашої групи користувачів:
$ sudo usermod -a -G users debian-transmission
Тепер створимо публічний ресурс на пристрої USB, на який ми будемо завантажувати торренти. По-перше, створюємо загальнодоступну частку на USB і призначаємо користувача передачі її власником:
$ sudo mkdir /mnt/usb/public
$ sudo chown debian-tranmission /mnt/usb/public
Тепер додайте цю частку до конфігураційного файлу Samba:
[Public]
comment= Public share for torrents
browseable = yes
path = /mnt/usb/public
public = yes
writeable = yes
guest ok = yes
Перезапустіть Samba, щоб зробити частку доступною кожному. З публічною часткою на місці прийшов час налаштувати демон Transmission. Його параметри визначені в /etc/transmission-daemon/settings.json
Відкрийте файл в nano і спочатку змініть параметр "rpc-whitelist-enabled": true на "rpc-whitelist-enabled": false, щоб дозволити користувачам підключатися з усіх комп'ютерів.
Потім вкажіть каталог для завантаження:
"download-dir": "/mnt/usb/public/downloads/Complete"
Ви також можете відокремити неповні файли, зберігаючи їх в іншу папку. По-перше, включіть опцію шляхом зміни параметру "incomplete-dir-enabled": false на "incomplete-dir-enabled": true і вкажіть каталог, який буде домом для незавершених завантажень з "incomplete-dir": "/mnt/usb/public/downloads/Incomplete"
Аутентифікація користувача
Так як ми дали право власності на каталог /mnt/usb/public користувачу передачі, то він буде автоматично створювати нові каталоги. У той час, як скачувані торренти є відкритими, Ви можете переконатися, що не кожен може стояти в черзі торрентів для завантаження.
Одним із способів зробити це – запросити у користувачів аутентифікацію, перш ніж дозволити їм доступ до Transmission. Для цього спочатку треба змінити параметр "rpc-authentication-required": false на "rpc-authentication-required": true
Потім визначити пароль в параметрі "rpc-password": "<password>", який буде автоматично шифрувати Transmission. Тепер збережіть файл і запустіть демон Transmission з sudo service transmission-daemon start.
За замовчуванням Transmission використовує порт 9091. У нашому прикладі, повний URL для веб-інтерфейсу користувача Transmission буде 192.168.3.100:9091. Запустіть браузер і введіть цю адресу.
Якщо Ви включили параметр пароля, то Вам буде запропоновано ввести облікові дані для входу. Іменем користувача є transmission, а пароль, який Ви вказали у файлі конфігурації.
Перед тим, як завантажити торрент, Вам необхідно знати розташування файла .torrent. Перейдіть до веб-інтерфейсу Transmission і натисніть кнопку Open Torrent (Відкрити торрент). Вставте URL в спливаючому вікні та натисніть кнопку Upload (Завантажити), щоб почати завантаження.
В інтерфейсі легко орієнтуватися. За замовчуванням, він показує всі додані торенти, але Ви можете використовувати випадаюче меню, щоб подивитися торренти відповідно до їх стану завантаження або трекерів. При натисканні правою кнопкою миші на перерахованому торренті в списку, буде відображене контекстне меню.
Після того, як торрент завантажений, згідно з нашою конфігурацією, він буде автоматично переміщений в загальнодоступний каталог /mnt/usb/public/downloads/Complete. Найпростіший спосіб доступу до загального ресурсу в Linux - ввести його адресу в менеджері файлів за замовчуванням. Більшість сучасних менеджерів файлів Linux, таких як Nautilus Gnome, підтримують Samba. Запустіть Nautilus і натисніть Ctrl+L для доступу до адресного рядка.
Pi-map-4
Тепер введіть smb:// потім IP -адресу RPi з запущеною Samba. У нашому випадку, це було б smb://192.168.3.100. Щоб отримати доступ до певної частини, Ви можете також додати її назву до кінці адреси, наприклад, smb://192.168.3.100/documents. Або можете змонтувати частину з командного рядка:
# mount -t cifs -o username=pi,password=raspberry //192.168.3.100/usb/downloads /mnt/downloads
Для автоматичного монтування розшареної частини Ви можете додати її в файл /etc/fstab:
//192.168.3.100/usb/downloads /mnt/downloads cifs username=pi,password=raspberry 0 0
Можна підключити віддалений пристрій USB на Windows. Відкрийте на машині Windows 7 My Computer (Мій комп'ютер)і натиснніть на кнопку Map Network Drive (Підключити мережевий диск). У вікні, яке з'явиться, виберіть букву диска і введіть шлях до мережевої папки. Це буде щось на зразок 192.168.3.100\usb\videos. Вам буде запропоновано ввести інформацію для аутентифікації, потім привід буде відображатися в Мій комп'ютер.
Розшарений доступ з Android-пристрою
1. Пошук і встановлення
Pi-Android-5
Магазин Android Play наповнений файловими менеджерами, які можуть працювати з розшареними ресурсами Samba. Ми використаємо популярний файловий менеджер ES File Explorer.
2. Конфігурування
Pi-Android-6
У додатку змініть View (Вид) з Local (Локально) на LAN (Мережа), а потім перейдіть в Menu > New > Server (Меню> Створити > Сервер) і введіть параметри з'єднання і аутентифікації.
3. Перегляд і потік
Pi-Android-7
Залежно від Ваших прав, Ви зможете завантажувати, зберігати і програвати файли та отримати доступ до публічних і приватних розшарених ділянок.
(Джерело EN: techradar.com)
 
>
КнигаНовиниПрактика пошукуПартнериПро нас
Підтримка та дизайн: Могильний С.С. Шаблон: Joomla Templates by BuyHTTP Joomla Hosting