Где хранить большие данные для Outlook Web App?

Я разрабатываю свою первую надстройку для Outlook Web App. Мне непонятно, где я должен хранить большие фрагменты данных, предоставленных пользователем (например, большие фрагменты текста, изображения) и быть связанным с надстройкой (в отличие от принадлежности к определенному почтовому элементу).

У меня сложилось впечатление, что RoamingSettings предназначен для относительно небольших вещей и, следовательно, не подходит. Я мог бы хранить данные в OneDrive, но предпочитаю не предоставлять данные пользователю за пределами пользовательского интерфейса надстройки. Я нашел эту запись SO, но ответ кажется быть более применимым к настольному Outlook, а не к OWA. Я полагаю, что при необходимости я мог бы хранить данные на своем собственном сервере, но сначала я хочу знать, есть ли в архитектуре OWA уже что-то, что могло бы служить этой цели.


person Bob Arlof    schedule 31.05.2016    source источник


Ответы (2)


RoamingSettings — это выбор по умолчанию для хранения параметров приложения/пользователя/данных, но существует ограничение в 32 КБ, которое можно использовать для каждого параметра, и 2 МБ для всех параметров, используемых вашей надстройкой. Альтернативный подход — использовать EWS для создания сообщения в скрытой папке и сохранения данных в тексте сообщения.

Я создал реализацию, которая сериализует XML в скрытое сообщение и обратно в объекты JavaScript. Вы можете увидеть мою статью здесь (с образцом приложения и исходным кодом в GitHub) о том, как это сделать:

https://blogs.msdn.microsoft.com/mvpawardprogram/2016/01/26/unifying-your-web-dev-skills-for-office-add-ins/

person Eric Legault    schedule 31.05.2016
comment
Просто чтобы уточнить... В вашем ответе указано, что ограничение RoamingSettings составляет 32 КБ на надстройку. Однако в вашей статье указано, что ограничение составляет 2 МБ на надстройку с ограничением 32 КБ для каждого параметра. Я предполагаю, что 2 МБ - правильное значение? - person Bob Arlof; 01.06.2016
comment
Да, извините, мое прежнее «я» верно, лол. Это значение в 2 МБ может быть еще не задокументировано, но я получил эту информацию от Microsoft PM. - person Eric Legault; 01.06.2016
comment
О - и спасибо! Пожалуйста, оцените эту статью, когда у вас будет возможность - person Eric Legault; 01.06.2016
comment
Спасибо за подтверждение значения 2 МБ. Вы можете настроить верхнюю часть статьи, которая может быть прочитана, чтобы указать, что существует ограничение в 32 КБ для каждой надстройки. Я пытался дать статье 5 звезд, но вход в msdn.blogs отказывается распознавать мой логин. :-( Попробую позже, когда подробно изучу статью. - person Bob Arlof; 01.06.2016
comment
К сожалению, я не могу редактировать его сам, но вы, вероятно, единственный, кому это небезразлично, LOL. Я рад, что кто-то наконец находит это полезным! - person Eric Legault; 02.06.2016
comment
NM, вы имели ввиду мой ответ, а не мою статью - исправим! - person Eric Legault; 02.06.2016
comment
Вы были правы в первый раз, я имел в виду верхнюю часть вашей статьи в блоге msdn, но я не знал, что вы больше не можете ее редактировать. У меня есть ощущение, что статья окажется более важной в будущем, поскольку она затрагивает основные потребности в надстройках OWA. OWA — хорошее веб-приложение, и я подозреваю, что гораздо больше людей могут начать полагаться на него, что привлечет больше разработчиков надстроек. Будет интересно посмотреть, что произойдет. - person Bob Arlof; 03.06.2016
comment
На самом деле я разработал этот подход для управления параметрами роуминга для моих надстроек COM для настольных компьютеров, чтобы синхронизировать параметры приложений на компьютерах пользователей, используя их почтовые ящики в качестве контейнера. Поддержка RoamingSettings в Mailbox API казалась достаточной, но я быстро достиг предела при разработке надстройки MessageFiler (rockinsoftware.ca/MessageFiler.html). Надеюсь, другие найдут этот подход полезным, но я подозреваю, что это скорее крайний случай, чем что-либо еще. - person Eric Legault; 03.06.2016

Я разработчик для Microsoft, работающий над надстройками Outlook.

Как вы заметили, вы должны хранить большие данные с вашим сервисом/на своем сервере. Сообщение, как правило, не подходит для хранения случайных данных для вашей надстройки. Для использования makeEwsRequestAsync требуется разрешение ReadWriteMailbox для надстройки, которое в противном случае может не понадобиться.

Еще одно замечание: ограничение в 32 КБ — это ограничение для RoamingSettings на надстройку для Outlook. Это не 2 МБ.

person Philip Chan - MSFT    schedule 21.07.2016