Как организовать потоковую передачу файлов с Raspberry Pi на смартфон
Оценка пользователей: / 4
ПлохоОтлично 
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 Данный адрес e-mail защищен от спам-ботов, Вам необходимо включить 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.100usbvideos. Вам будет предложено ввести информацию для аутентификации, затем привод будет отображаться в Мой компьютер.
Расшаренный доступ с 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