Опубликован: 30.05.2011 | Доступ: свободный | Студентов: 2407 / 234 | Оценка: 4.12 / 4.41 | Длительность: 12:00:00
Специальности: Программист, Архитектор программного обеспечения
Теги:
Самостоятельная работа 6:
Работа с Windows Azure Blob
Задание 4 Копирование сущностей
Копирование бинарных объектов также поддерживается Windows Azure. В рамках данного задания мы рассмотрим этот механизм.
Для формирования кнопки "Копировать" в списке имеющихся изображений, добавим следующий asp - код для lv_images :
... <div class="item"> <ul style="width:40em;float:left;clear:left" > <asp:Repeater ID="blobMetadata" runat="server"> <ItemTemplate> <li><%# Eval("Name") %><span><%# Eval("Value") %></span></li> </ItemTemplate> </asp:Repeater> <li> ... <asp:LinkButton ID="CopyBlob" OnClientClick="return confirm('Copy image?');" CommandName="Copy" CommandArgument='<%# Eval("Uri")%>' runat="server" Text="Copy" oncommand="OnCopyImage" /> ...
Как и в предыдущем задании, создадим метод OnCopyImage:
protected void OnCopyImage(object sender, CommandEventArgs e) { if (e.CommandName == "Copy") { // Prepare an Id for the copied blob var newId = Guid.NewGuid(); // получение исходного объекта var blobUri = (string)e.CommandArgument; var srcBlob = this.GetContainer().GetBlobReference(blobUri); // создание нового бинарного объекта var newBlob = this.GetContainer().GetBlobReference(newId.ToString()); // копирование содержимого исходного объекта newBlob.CopyFromBlob(srcBlob); // получаем метаданные для нового объекта newBlob.FetchAttributes(new BlobRequestOptions { BlobListingDetails = BlobListingDetails.Metadata }); // изменение метаданных нового объекта, чтобы показать, что это копия newBlob.Metadata["ImageName"] = "Copy of \"" + newBlob.Metadata["ImageName"] + "\""; newBlob.Metadata["Id"] = newId.ToString(); newBlob.SetMetadata(); RefreshGallery(); } }
Проверим функционал:
В случае, если выполнение задания вызвало сложности и затруднения, в приложениях к данной практической работе вы найдете итоговый программный код в том виде, в котором он необходим для последнего задания.