【问题标题】:Windows Azure blob storage & URL rewriteWindows Azure blob 存储和 URL 重写
【发布时间】:2012-08-29 18:38:25
【问题描述】:

我需要为请求的 blob 重写 URL,即,而不是 http://myaccount.blob.core.windows.net/clients/{client-name}/images/imagefile.jpg 应该送达 http://myaccount.blob.core.windows.net/clients/images/imagefile.jpg

URL 中的客户端名称是对 SEO URL 的请求,因为文件名是唯一的,我希望 blob 名称为 images/imagefile.jpg 而不是 {client-name}/images/imagefile.jpg 并在 IIS 中使用 URL 重写之类的东西。 如果客户端更改它的名称会很痛苦,因为我无法重命名 blob,我必须创建副本并删除旧 blob。这可能需要一分钟以上,我们负担不起。

【问题讨论】:

    标签: azure url-rewriting azure-storage


    【解决方案1】:

    您不能对存储帐户使用 URL 重写之类的东西。您只能将自定义域映射到您的存储帐户。例如,不使用 http://myaccount.blob.core.windows.net/... 来引用 blob,您可以将它们映射到 http://img.yourdomain.com/... 您还可以使用 Azure CDN 以获得更好的性能和用户体验!

    此外,如果您确实关心 SEO,您还必须考虑不仅要“重命名” blob,还要使用 HTTP 301 从旧 blob 重定向到新 blob。这对于 Azure 存储服务也是不可能的。我建议你使用 client-id 而不是 client-name

    更新

    您“可以”重新命名 blob,类似于重命名文件的方式。鉴于您的要求 - 如果您想“快速”重命名大量图像,无论如何您都必须编写简单的“服务”,因为我也想不出另一种方法来重命名文件系统上的 1000 个文件。有了这些斑点,虽然很遥远,但它几乎是一样的。你错了,你必须将 blob 保存在机器上。自 2011 年 11 月发布(我认为)以来,有一个名为 CopyFromBlob 的新功能(CloudBlob 实例上的方法)。 Here is an example of how to rename blobs.。这样,您甚至可以在不同的帐户周围轻松移动 blob,而无需先下载内容。是的,它可能比使用本地文件系统需要更长的时间。但这仍然是一个足够公平的解决方案。

    想想 Azure 存储是什么。大规模可扩展、可靠的存储即服务。您有 100TB(如果需要,可能会增加),本地 3 个副本 + 另一个地理区域中的一个副本。 CDN 支持全球超过 24 个节点的海量存储。我不认为重命名是最需要的。

    【讨论】:

    • 其实我不需要client-name或者client-id。我想我已经获得完全删除它的许可。但是,这对我来说看起来很奇怪,因为我不能重命名 blob,我不能重命名容器,我不能使用 URL 重写之类的东西。这对我来说意味着我无法快速更改许多图像的 URL。让我们考虑一下场景,我有很多图像,我们决定更改文件名。为此,我需要获取 blob 并以不同的名称保存,如果我有 1Tb,则需要很长时间。当然我可以创建一个服务放到云端来完成一项工作,但是这对我来说很昂贵,因为我需要很多时间来完成简单的任务。
    • 非常感谢。这真的很有帮助。有趣的是 CopyFromBlob 的速度有多快。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-16
    • 2018-07-11
    • 1970-01-01
    • 2021-04-30
    • 2019-03-08
    • 2023-01-03
    相关资源
    最近更新 更多