Опубликован: 30.05.2011 | Доступ: свободный | Студентов: 2250 / 144 | Оценка: 4.12 / 4.41 | Длительность: 12:00:00
Самостоятельная работа 6:

Работа с Windows Azure Blob

< Лекция 14 || Самостоятельная работа 6: 1234567 || Лекция 15 >

Задание 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();
            }
        }

Проверим функционал:

В случае, если выполнение задания вызвало сложности и затруднения, в приложениях к данной практической работе вы найдете итоговый программный код в том виде, в котором он необходим для последнего задания.

< Лекция 14 || Самостоятельная работа 6: 1234567 || Лекция 15 >
Роза Мальцева
Роза Мальцева
Игнат Гринько
Игнат Гринько

Примерно месяц назад получил на сайте код Дримспарк, сегодня вводил его на сайте Дримспарк, пишет: Недействительный код проверки. Проверьте правильность введенного кода. Код вводил методом: скопировать-вставить.

Евгений Бородин
Евгений Бородин
Украина, Киев