2012-09-05 180 views
3

我需要的是重写URL的请求的斑点,即代替 http://myaccount.blob.core.windows.net/clients/ {客户名称} /images/imagefile.jpg 应服 http://myaccount.blob.core.windows.net/clients/images/imagefile.jpg的Windows Azure Blob存储与URL重写

客户端URL中的名称是请求拥有SEO URL,因为文件名是唯一的,我想要将blob名称设为 images/imagefile.jpg而不是 {客户名称} /images/imagefile.jpg并使用某些比如在IIS中重写URL。 如果客户端更改它的名称,因为我无法重命名blob,我必须创建副本并删除旧的blob,这会变得很痛苦。我们无法承受的时间可能会超过一分钟。

回答

2

您不能对存储帐户使用任何类似URL重写的内容。您只能将自定义域映射到您的存储帐户。例如,而不是引用blob:http://myaccount.blob.core.windows.net/ ...您可以将它们映射到http://img.yourdomain.com/ ...而且您还可以使用Azure CDN以获得更好的性能和用户体验!此外,如果你关心搜索引擎优化,你还必须考虑不仅仅是“重命名”blob,还要使用HTTP 301重定向从旧的blob到新的。使用Azure存储服务也不可能。我建议你使用客户ID而不是客户名称

UPDATE的

你“可以” reanme的斑点,simialry你会重命名文件的方式。根据您的要求 - 如果您想“快速”重命名大量图像,无论如何您必须编写简单的“服务”,因为我无法找到另一种方法来重命名文件系统上的1000个文件。随着斑点,尽管遥远的它将几乎相同。你错了,你必须保存在机器上的斑点。自2011年11月发布(我认为)以来,有一项新功能(CloudBlob实例上的方法),名称为CopyFromBlobHere is an example of how to rename blobs.。这样,您可以轻松地将Blob移动到不同帐​​户周围,而无需先下载内容。是的,这可能比使用本地文件系统需要更长的时间。但这仍然是一个公平的解决方案。

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

+0

实际上,我不需要客户端名称或客户端ID。我认为我有权完全删除它。 但仍然,我看起来很奇怪,因为我不能重命名一个blob,我不能重命名容器,我不能使用像URL重写的东西。这对我意味着什么,我无法快速更改许多图像的URL。 让我们考虑一下情景,我有很多图像,我们决定更改文件名。为此,我需要获得blob并以不同的名称保存,如果我有1Tb,则需要很长时间。当然,我可以创建一项服务将其放入云中以完成工作,但对我来说这很昂贵,因为这需要我花很多时间完成简单任务。 – user1325696

+0

非常感谢。这真的很有帮助。 CopyFromBlob的速度有多快。 – user1325696