|
Сайт 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






