1

我想知道是否有办法上传/下载 blob;在不使用 webrole 的情况下添加删除视图元数据?如果我的应用程序有很多 gui,那么会有多个 webroles 吗?在我看到的任何地方,webrole 的文件 default.aspx.cs 都与基于事件的 blob 有关;这很好,但是如果我的 gui 更复杂怎么办?

4

3 回答 3

3

Blob 可通过 REST 调用访问,因此您可以根据需要使用本地桌面应用程序实际操作 Blob,甚至可以使用 PHP 或 Java 编写。

至于 webroles:每个角色只是在某个服务器上运行的虚拟机。Web 角色就像工作角色一样,只是增加了 IIS。如果你有一个网站,你可以把整个网站放在一个单独的 webrole 中。如果您需要扩展它以处理更多用户,您可以创建多个该 webrole 的“实例”——然后您网站的所有请求都会发送到各个实例,每个实例运行相同的代码。(是的,对于给定的应用程序,您可以有多个 webrole - 这可能是实用的,具体取决于您网站的复杂性,或者如果您为管理员和访问者提供完全不同的 UI)。

于 2010-04-12T02:13:43.863 回答
1

无需使用 Web 角色即可访问 Azure 存储(Blob 或其他)。您可以使用辅助角色,甚至可以从桌面上运行的 Windows 窗体应用程序或未在 Azure 上运行的 Web/服务应用程序访问它。

有关如何访问 Azure 存储的信息,请参阅 Azure SDK 的 StorageClient 文档 - 这非常简单。

于 2010-04-12T02:14:00.167 回答
0

不需要 Azure 项目或其他角色即可使用 blob。如果要在 .Net 项目中使用 Azure 客户端,可以将配置添加到应用设置部分并引用它。Azure 客户端是休息调用的包装器。他们有一些请求签名步骤,这使得使用简单的 webrequest 难以实现调用。

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

您可以获取 blob 客户端:

 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; }
}
于 2012-04-09T14:05:49.440 回答