Поделиться праздничными фото с помощью службы Photo Sharing
У вас куча фотографий после праздников? Хотя вы всё знаете о различных сервисах и сайтах, позволяющих публиковать фотографии и делиться ими с друзьями, как разработчик вы хотите свой собственный сервис, не так ли? И, возможно, использовать этот шанс сыграть в мобильное приложение, которое подцепить к Windows Azure?
Познакомьтесь с этой продолжающейся серией, чтобы сделать именно это!
Теория приложений фотохостинга в облаке для WindowsPhone и Azure
В следующей паре постов мы собираемся коснуться того, как можно соединить ваше приложение для Windows Phone и облако. Хотя большинство этих концепций можно применить к любому провайдеру облачных сервисов, в этой статье мы сбираемся сфокусироваться на Windows Azure.
Пример, который мы собираемся рассмотреть, это приложение для фотохостинга, Capture TechEd, которое было создано при подготовке к моему выступлению на сессии Phone+Cloud на последних конференциях TechEd NZ и TechEd Australia. Вкратце, приложение позволяет пользователю сделать снимок и поделиться им с другими пользователями приложения Capture TechEd. Последовательность событий такова:
- Пользователь делает снимок с помощью приложения Capture TechEd
- Он добавляет комментарий и назначает фото определенный трек TechEd
- Фото загружается в хранилище BLOB
- URL, комментарии и информация о треке загруженного фото добавляется к очереди обработки
- Фото извлекается из очереди и масштабируется к размеру 173×173 (размер начальной ячейки (Start tile) Windows Phone)
- Всем пользователям приложения рассылается уведомление о том, что надо обновить начальную ячейку для просмотра нового фото
В статье мы собираемся пройтись по каждому из этих шагов на верхнем уровне, чтобы вы поняли концепции. Затем в последующих постах мы рассмотрим каждый шаг в деталях вместе с кодом, который надо написать для каждого шага.
Шаг 1: Делаем снимок камерой
Шаг 2: Загружаем фото в хранилище Blob
Шаг 3: Загружаем задачу обработки
Шаг 4: Добавляем задачу в очередь
Шаг 5: Обработка изображения
Шаг 6: Обновление начальной ячейки через уведомление
Шаг 7: Получение последних фотографий
Практическое руководство по приложениям разделения фотографий с использованием WindowsPhone и Azure
Предыдущее сообщение серии называлось «Теория приложений фотохостинга в облаке для Windows Phone и Azure» Мы рассмотрим архитектуру простого приложения разделения фотографий. Шаги с первого по пятый в этом процессе касаются фотографирования с помощью камеры и загрузки фотографий в хранилище Blob. Чтобы следовать за статьей, вам надо установить как Windows Phone SDK, так и Windows Azure SDK for Visual Studio.
Шаг 1: Создание приложения для телефона
private CameraCaptureTask camera = new CameraCaptureTask();
private string filename;
public MainPage() {
InitializeComponent();
camera.Completed += CameraCompleted;
}
private void CameraCompleted(object sender, PhotoResult e) {
var bmp = PictureDecoder.DecodeJpeg(e.ChosenPhoto);
filename = Guid.NewGuid() + ".jpg";
using (var file = IsolatedStorageFile.GetUserStoreForApplication().OpenFile(filename, FileMode.Create, FileAccess.Write)) {
bmp.SaveJpeg(file, bmp.PixelWidth, bmp.PixelHeight, 0, 100);
}
CaptureImage.Source = bmp;
}
private void CaptureClick(object sender, RoutedEventArgs e) {
camera.Show();
}
Шаг 2: Создание облачного приложения
Следующий шаг – создание облачного проекта, который может быть добавлен в то же решение, которое содержит приложение для телефона. Щелкните правой клавишей мыши на узле Решение в проводнике решений и выберите Добавить-> Новый проект, и в диалоговом окне выберите шаблон Windows Azure Project из раздела Облако.
Шаг 3 : Генерация подписи разделяемого доступа
Для того чтобы загрузить фото из нашего приложения Windows Phone напрямую в хранилище Blob Windows Azure нам понадобиться один из двух ключей доступа, полученных через консоль управления Windows Azure для учетной записи хранилища, в которое вы хотите загрузить фото. Эти ключи спроектированы для использования в веб-сайтах или сервисах, расположенных на серверах, а не в клиентских приложениях. Если для построения настольных приложений или приложений для Windows Phone используется клиентская технология Silverlight, то вы не должны включать ключи доступа в такие приложения.
Шаг 4: Получение подписи общего доступа
Теперь, когда у нас есть служба, генерирующая подпись общего доступа, нам нужно вызвать ее из нашего приложения Windows Phone. Чтобы сделать это нам нужно добавить ссылку на UploadService в проекте Windows Phone. Убедитесь, что собрали решение и можете посмотреть UploadService ( правой клавишей мыши на UploadService.svc и выбрать пункт Просмотр в браузере.
Шаг 5: Завершение загрузки
Последним шагом станет вызов метода UploadUriWithSharedAccessSignature для получения SAS, который затем применяется для загрузки фото в хранилище Blob. Следующий код начинается вызовом этого метода, затем, после получения ответа, фото загружается в хранилище с помощью класса CloudBlobUploader. Полный код для класса приведен в конце сообщения.
…
Это лишь начало серии статей, в котором вы только что загрузили свои фотографии в Azure. Следите за будущими статьями, описывающими конец истории…
Вот несколько ссылок, которые могут оказаться интересными:
- Windows Phone First Up/ All Up
- Cross Platform Mobile Application Development
- Connecting Phone Applications to the Cloud
- Приложение Capture TechEd в Zune Marketplace