доступ к BLOB-объектам; без использования вебролла? - PullRequest
1 голос
/ 12 апреля 2010

Я хотел бы знать, есть ли способ загрузить / загрузить BLOB-объекты; добавить удалить метаданные представления без использования веб-ролей? Если в моем приложении много графических интерфейсов, будет ли несколько веб-ролей? повсюду я вижу, что файл webrole default.aspx.cs связан с большим двоичным объектом на основе события; это прекрасно, но что если мой графический интерфейс более сложный?

Ответы [ 3 ]

3 голосов
/ 12 апреля 2010

BLOB-объекты доступны через вызовы REST, так что вы можете управлять BLOB-объектами с помощью локального настольного приложения, если хотите, даже написанного на PHP или Java.

Что касается веб-ролей: каждая роль - это просто виртуальная машина, работающая на каком-то сервере. Веб-роли похожи на рабочие роли с добавлением IIS. Если у вас есть веб-сайт, вы можете поместить весь веб-сайт в одну веб-роль. Если вам нужно масштабировать его для обработки большего количества пользователей, вы можете создать более одного «экземпляра» этой веб-роли - и тогда все запросы вашего веб-сайта будут отправляться в различные экземпляры, каждый из которых выполняет один и тот же код. (да, у вас может быть несколько веб-ролей для данного приложения - это может быть полезно в зависимости от сложности вашего сайта или если у вас совершенно другой пользовательский интерфейс для администраторов и посетителей).

1 голос
/ 12 апреля 2010

Вам не нужно использовать веб-роль для доступа к хранилищу Azure (Blob или иным образом). Вы можете использовать рабочую роль или даже получить доступ к ней из приложения Windows Forms, работающего на рабочем столе, или из веб-приложения / службы, которое не работает в Azure.

Информацию о том, как получить доступ к хранилищу Azure, можно найти в документации StorageClient в Azure SDK.

0 голосов
/ 09 апреля 2012

Вам не нужен проект Azure или другие роли для использования BLOB-объектов. Если вы хотите использовать клиент Azure в проекте .Net, вы можете добавить свой конфиг в раздел настроек приложения и сослаться на него. Клиент Azure - это оболочка для остальных звонков. У них есть несколько шагов подписания запросов, которые затрудняют выполнение вызовов с помощью простых веб-запросов.

 <add key="AzureBlobStorage" value="AccountName=youraccountname;AccountKey=YOURKEYeZgfgdfg==;DefaultEndpointsProtocol=https"/>

Вы можете получить блоб-клиент:

 public CloudBlobClient GetBlobClient()
    {
        var accountBlob = ConfigurationManager.AppSettings["AzureBlobStorage"];

        var account = CloudStorageAccount.Parse(accountBlob.ToString());


        return account.CreateCloudBlobClient();

    }


public CloudBlob GetBlob(BlobItem blobItem)
        {
            var client = GetBlobClient();
            var cloudBlobContainer = client.GetContainerReference(blobItem.ContainerReference);
            return cloudBlobContainer.GetBlobReference(blobItem.FileName);
        }

BlobItem - просто оболочка. По сути, вам нужно имя папки и имя файла для доступа к BLOB-объекту.

 public class BlobItem
{
    [Required]
    [Display(Name = "Container")]
    public string ContainerReference { get; set; }
    [Required]
    [Display(Name = "File name")]
    public string FileName { get; set; }

    [Required]
    [UIHint("MultilineText")]
    public string Content { get; set; }

    /// <summary>
    /// to use in stream mode
    /// </summary>
    public Stream Stream { get; set; }
}
...