Сайт dreamspark пишет что код истек :( |
Работа с блобами, таблицами и очередями Windows Azure Storage в локальном эмуляторе
Создайте новый облачный проект (Cloud Service) в Visual Studio 2012.
Добавьте в проект одну Web-роль.
Добавьте функциональность работы с блобами. Добавьте в файл Default.aspx.cs в определение класса _Default следующий код:
CloudStorageAccount _cloudStorageAccount; CloudBlobClient _blobClient; CloudBlobContainer _blobContainer; BlobContainerPermissions _permissions; CloudBlockBlob _blob;Добавьте в метод Page_Load код, приведенный ниже. _cloudStorageAccount = CloudStorageAccount.DevelopmentStorageAccount; _blobClient = _cloudStorageAccount.CreateCloudBlobClient(); _blobContainer = _blobClient.GetContainerReference("mycontainer"); _blobContainer.CreateIfNotExists(); _permissions = new BlobContainerPermissions(); _permissions.PublicAccess = BlobContainerPublicAccessType.Blob; _blobContainer.SetPermissions(_permissions); _blob = _blobContainer.GetBlockBlobReference("image.jpg"); using (var fileStream = System.IO.File.OpenRead(@"c:\temp\image.jpg")) { _blob.UploadFromStream(fileStream); } Response.Write("<img style='width:20%;height:20%;' src='"+_blob.Uri+"'></img>"); Response.Write("<br />"); Response.Write("Файл загружен по адресу " + _blob.Uri);
Нажмите F5 для запуска приложения в локальном эмуляторе вычислений.
Доступ к файлу может быть получен в браузере. Также доступ к хранилищу может быть произведен из Visual Studio Server Explorer.
Добавьте в приложение поддержку таблиц Windows Azure Storage. Для этого добавьте в приложение класс с названием ImageEntity. Сущности данного класса будут работать как отображающие объектную модель в хранилище Windows Azure Storage.
Добавьте в класс ImageEntity код, приведенный ниже.
public ImageEntity(string name, long size) { this.PartitionKey = "1"; this.RowKey = DateTime.Now.ToString(); this.Name = name; this.Size = size; } public ImageEntity() { } public string Name { get; set; } public long Size { get; set; }
Добавьте в метод Page_Load файла Default.aspx.cs код, приведенный ниже.
CloudTableClient _tableClient = _cloudStorageAccount.CreateCloudTableClient(); CloudTable _table = _tableClient.GetTableReference("images"); _table.CreateIfNotExists(); _blob.FetchAttributes(); ImageEntity image = new ImageEntity(_blob.Name, _blob.Properties.Length); TableOperation insertOperation = TableOperation.Insert(image); _table.Execute(insertOperation); TableQuery<ImageEntity> query = new TableQuery<ImageEntity>().Where (TableQuery.GenerateFilterCondition("PartitionKey", QueryComparisons.Equal, "1")); Response.Write("<br />"); foreach (ImageEntity entity in _table.ExecuteQuery(query)) { Response.Write(String.Format("Сущность, добавленная {0}, имеет имя {1} и размер {2} <br />", entity.RowKey, entity.Name, entity.Size) ); }
Обратите внимание на выполняемый метод FetchAttributes. Он необходим для того, чтобы получить метаданные блоба, в которых, в том числе, находится информация о размере блоба.
Нажмите F5 для запуска приложения в локальном эмуляторе вычислений. Обновите несколько раз страницу.
Доступ к файлу может быть получен в браузере. Также доступ к таблице может быть произведен из Visual Studio Server Explorer.
Добавьте в приложение поддержку очередей Windows Azure Storage. Для этого добавьте код, приведенный ниже, в метод Page_Load.
CloudQueueClient _queueClient = _cloudStorageAccount.CreateCloudQueueClient(); CloudQueue _queue = _queueClient.GetQueueReference("myqueue"); _queue.CreateIfNotExists(); Response.Write("Сообщение добавляется в очередь "+_queue.Name +"<br />"); CloudQueueMessage message = new CloudQueueMessage(_blob.Uri.ToString()); _queue.AddMessage(message); Response.Write("Сообщение было добавлено<br />"); CloudQueueMessage retrievedMessage = _queue.GetMessage(); Response.Write("Получение первого сообщение из очереди<br />"); _queue.DeleteMessage(retrievedMessage); Response.Write("Полученное сообщение:" +retrievedMessage.AsString + " с идентификатором:"+retrievedMessage.Id +" было добавлено в очередь:" +retrievedMessage.InsertionTime);
Нажмите F5 для запуска приложения в локальном эмуляторе вычислений.
Доступ к файлу может быть получен в браузере. Также доступ к сущностям, хранящимся в очереди Windows Azure Storage, может быть произведен из Visual Studio Server Explorer.
увеличить изображение
Рис. 9.7. Доступ к сущностям, хранящимся в очереди Windows Azure Storage из Visual Studio Server Explorer