Безопасный обмен данными для встраиваемых IoT устройств с использованием Dropbox

Dropbox client

12 января 2017 года компанией SEGGER был анонсирован Dropbox клиент, как часть предложений компании в области интернета вещей (IoT). Устройства IoT имеют различные коммуникационные потребности. Новый Dropbox клиент идеален для проектов, которые необходимы для управления различными массивами данных. В конечном итоге, обычно необходимо загрузить и сохранить файлы данных, иногда большие по объему. Безопасный и надежный способ хранения этих файлов - это использование общедоступного DropBox API.

Типичные случаи такого использования включают: загрузку и хранение файлов обновления прошивок (firmware), Log-файлов, и в этом случае любая информация распределяется между различными устройствами и/или центральным сервером.

Dropbox является великолепной платформой для такого стиля работы подключенного приложения, платформой с проверенной надежностью, неограниченной емкостью и способностью хранить данные в течение неограниченного времени.

Segger Dropbox клиент обеспечивает безопасный обмен данными, используя протоколы SSL/ TLS  и соответствующий стандартам совместимый TCP/IP стек с программным интерфейсом (сокетом).

Для работы клиента необходим emSSL от SEGGER.

Интегрированный с продуктом SEGGER embOS/IP сетевой стек делает возможным использование Dropbox для небольших микроконтроллеров.

Коммерческая лицензия обеспечивает доступ к полному исходному коду. Доступен оценочный пакет для PC, позволяющий оценить решение в считанные минуты.

Несколько слов об embOS/IP

embOS/IP – это высокопроизводительный IP стек, специально разработанный для встраиваемых систем. Стек поддерживает все популярные протоколы: ACD, ARP, AutoIP, DHCP, DNS, FTP, HTTP, ICMP, IPv4, IPv6, MQTT, Multicast, NetBIOS Name Service, PPP/PPPoE, SMTP, SNTP, TCP, UDP, UPnP, VLAN и многие другие.

Dropbox клиент

Использование SEGGER Middleware для доступа к Dropbox

SEGGER Dropbox client - это библиотека программного обеспечения, позволяющая легко получить доступ к вашему Dropbox аккаунту, используя emSSL или любой TCP/IP стек, который поддерживает программные интерфейсы (сокеты). Это позволяет обмениваться файлами между различными устройствами или выкладывать, например, такие файлы, как обновления для ваших устройств, используя учетную запись Dropbox.

Отличительные особенности:

  • поддержка загрузки и скачивания файлов;
  • поддержка Dropbox API v1;
  • поддержка Dropbox API v2 доступна по требованию;
  • простота интеграции;
  • небольшой объем.

Варианты использования Dropbox клиента

Dropbox позволяет вам синхронизировать и получать доступ к  файлам для различных устройств с помощью облачного хостинга, в то время как Dropbox может использоваться для синхронизации всего содержания аккаунта, возможен также выборочный доступ к файлам. Это может использоваться для передачи файлов между несколькими конечными точками (рядом клиентских устройств) и центральной точкой управления (хостом).

Обмен встроенным ПО (firmware) и Log-файлами между хостом и клиентами через Dropbox

Рис. 1. Обмен встроенным ПО (firmware) и Log-файлами между хостом и клиентами через Dropbox

На Рис. 1 показан пример, в котором доступ к Dropbox позволяет хосту публиковать файлы (например, обновление firmware или управляющие инструкции для клиентов), сохраняя их в своем аккаунте Dropbox. Затем в любое время клиенты могут воспользоваться этими файлами. При этом нет необходимости доступа в это время к хосту. Таким же образом, клиенты могут хранить в аккаунте, например, выходные log-файлы, которыми хост может воспользоваться в любое удобное для него время. При этом клиент может быть офлайн.

Оценочный пакет SEGGER Dropbox client

Для оценки доступен бесплатный пакет под Windows. Он позволяет вам получить доступ к собственной учетной записи Dropbox и выполнять такие команды, как получение списка файлов, их переименование, удаление, загрузка/скачивание на/из Dropbox.

Инструментарий поставляется без каких-либо гарантий и только в бинарном виде. Для получения версии с исходниками необходимо связаться с SEGGER.

Первые шаги для оценки SEGGER Dropbox client

Ниже приводится пошаговое руководство, в котором отображены все необходимые действия для использования приложения Dropbox с вашей учетной записью. Эти шаги являются общими для неофициальных приложений, использующих Dropbox API для доступа к вашей учетной записи и требующих ограничение доступа без вашего разрешения к вашей учетной записи. Для оценки SEGGER Dropbox client необходим Dropbox аккаунт. Если у вас еще нет учетной записи, вы можете зарегистрироваться здесь.

Домашняя страница Dropbox

Рис. 2. Домашняя страница Dropbox

Регистрация стороннего приложения с вашего аккаунта

Чтобы предоставить доступ к образцу приложения из вашего аккаунта, вам необходимо снабдить его маркером доступа. Для этого следует посетить страницу для разработчиков Dropbox developers page (https://www.dropbox.com/developers/apps) после входа в свой Dropbox аккаунт. Далее, чтобы зарегистрировать новое приложение, необходимо кликнуть на кнопку Create app.

Кнопка Create app вDropbox

Рис. 4. Кнопка Create app вDropbox

После этого следует ответить на три вопроса о Приложении:

  1. Выберите API:
    • необходимо выбрать Dropbox API.
  2. Выбрать тип необходимого вам доступа:
    • Вы можете предоставить приложению полный доступ к вашему Dropbox или только доступ к папке с определенным  приложением.  Dropbox клиент работает с обоими.
  3. Имя вашего приложения:
    • Используйте любое имя, которое вы хотите. Обратите внимание на некоторое ограничение, касающееся слова Dropbox в имени.

Ввод информации о приложении

Рис. 5. Ввод информации о приложении

Генерация маркера доступа к аккаунту через API

На  Рис. 6 показана страница, позволяющая сгенерировать "OAuth 2" маркер доступа. Для этого необходимо кликнуть на кнопку  "Generate".

Генерация маркера доступа

Рис. 6. Генерация маркера доступа

Маркер генерируется на основе ваших учетных данных и становится недействительным после их изменения. Поэтому вам придется заново его сгенерировать при смене пароля.

Сгенерированный маркер доступа

Рис. 7. Сгенерированный маркер доступа

Использование клиентом  маркера доступа Dropbox

Настройка маркера доступа для работы с образцом Dropbox может быть сделана двумя способами:

  1. Используя команду «Маркер» ("token")

    Запустите Dropbox client и используя команду "token xyz", в которой "xyz" необходимо заменить на маркер доступа;
     
  2. Используя файл startup.cli

    Для выполнения команд во время старта Dropbox клиента их необходимо внести в файл startup.cli, который находится в той же папке, что и Dropbox client. Вы можете открыть файл в предпочитаемом вами редакторе и изменить "xyz"на свой маркер доступа. В результате команда «маркер» будет выполняться автоматически при каждом старте Dropbox клиента.

Оценивая Dropbox client

Клиент Dropbox поставляется с несколькими командами, такими как получение листинга содержимого каталога, управление файлами и загрузка/скачивание файлов, что позволяет вам работать с вашей учетной записью в Dropbox. Используя команду Dir для просмотра содержимого Dropbox, Вы должны подтвердить доступ к вашему Dropbox.

Скриншот работы утилиты. Демонстрируется использование  ПО от SEGGER для получения доступа к контенту Dropbox.

Рис. 8. Скриншот работы утилиты. Демонстрируется использование ПО от SEGGER для получения доступа к контенту Dropbox.

Для получения списка команд необходимо набрать  "?".

Изменение локального каталога для загрузки/скачивания

Для выполнения операций put/get приложение пытается найти текущий каталог для использования в качестве локального каталога. Для использования другого локального каталога для команд "put" и "get" вы можете применить команду "setlocaldir": "setlocaldir C:\Data\".

Установка локального каталога

Рис. 9. Установка локального каталога

Получение доступа к интересующему файлу

Рис. 10. Получение доступа к интересующему файлу

Использование высококачественной продукции компании SEGGER - это один из необходимых элементов получения качественных результатов, дающих неоспоримые конкурентные преимущества при разработке электронных устройств.

Компания Терраэлектроника является официальным дистрибьютором SEGGER Microcontroller GmbH & Co. KG в Российской Федерации. У нас вы сможете приобрести широкий спектр эмуляторов и трассировщиков, так необходимых для разработки электронных изделий на высоком техническом уровне.

Статью подготовил и составил
Шрага Александр,
a.shraga@terraelectronica.ru