【问题标题】:Azure - many sites 1 service ( blob )Azure - 许多站点 1 服务 ( blob )
【发布时间】:2012-10-10 18:39:19
【问题描述】:

假设我有 10 个网站和 1 个 blob(用于图像)站点/cloud-service/wcf/无论 MS 怎么称呼它,

所有 10 个网站如何使用这 1 个 blob 服务?例如我希望每个站点都有管理页面

管理 blob 图像 (crud),

制作 Azure-WCF-Blob 服务并且每个站点都会使用它?如何确保只有 10 个站点可以

有权限吗?

其他选项?

(1个DB没问题,只有连接字符串...)

更新:

我会问更简单,10 个网站,在每个网站中我不想重复 10 次容器操作的代码,我如何创建 1 个 blob 服务/站点/这里的最佳选择是什么/然后在每个站点重复使用它?每个站点都会有一个 siteName/Admin 控制器,它可以管理容器/blob

【问题讨论】:

    标签: azure azure-blob-storage


    【解决方案1】:

    好的,您说的是 blob 存储。如果我理解您的问题,您似乎想确保一个网站无法访问其他网站的数据(图像)。在这种情况下,您有几个选择:

    1. 1 个网站 = 1 个存储帐户。在 Windows Azure 中,您可以创建多个存储帐户。这些存储帐户每个都有自己的密钥,以便访问它们。如果您为每个网站创建一个存储帐户,则很容易限制对这些存储帐户的访问。
    2. 您可以拥有一个包含多个容器的存储帐户。在每个容器上,您可以添加 SharedAccessBlobPolicy 来控制对容器的访问,而不受任何时间限制,但您需要 the new "unreleased" version of the SDK 来执行此操作。这将允许您的网站使用 SAS 签名访问特定容器(此访问权限可以随时撤销)。
    3. 使用 WCF 服务自己构建一些东西,但这可能需要更多的工作。

    【讨论】:

      【解决方案2】:

      我不确定我是否完全理解了这个问题,但基于“使用 1 个 DB 没问题,只有连接字符串”这句话,我认为您缺少的是 Windows Azure 存储的工作方式相同。您创建一个存储帐户,并从中获得一个帐户名称和密钥。在 .NET 中,您甚至可以将其构造为连接字符串,因此您可以从所有网站中执行以下操作:

      var blobs = CloudStorageAccount.Parse("DefaultEndpointsProtocol=https;AccountName=mystorage;AccountKey=abcd1234...").CreateCloudBlobClient();
      // do stuff with blobs here
      

      只要您使用相同的连接字符串,您的所有网站都将使用相同的存储空间。

      【讨论】:

        猜你喜欢
        • 2019-07-25
        • 2013-07-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-05-13
        • 2020-08-20
        • 1970-01-01
        • 2014-02-23
        相关资源
        最近更新 更多