【问题标题】:Azure Storage - Handling Double Slash in URLAzure 存储 - 处理 URL 中的双斜杠
【发布时间】:2016-01-05 22:08:53
【问题描述】:

我正在将我公司的文件集合 (15TB) 移动到 azure blob 存储。不幸的是,这些文件被移动应用程序拉下,这些应用程序在设备上构建了 URL 的最后一点。在苹果应用程序上,设备似乎在附加路径的其余部分之前添加了一个“/”,例如它将采用我们在请求中传递的域:

请求中传递的域:“files.mycompany.com/” 由 Apple 设备附加“/folder/file.jpg” 由 Android 设备附加“文件夹/文件.jpg”

这会导致苹果设备在路径中有双斜杠(“//”)。当这些文件来自我们当前的数据存储时,这很好,因为它将“//”评估为单个“/”,但在 azure 上并非如此。

由于这是一台设备,我们无法轻松更新所有应用并期望每个用户都进行实际更新。那么 azure 上是否有什么东西,或者我可以用自定义域做些什么,我可以重写 URL 以删除“//”?

【问题讨论】:

    标签: c# azure url-rewriting azure-storage


    【解决方案1】:

    您绝对可以将“/”作为文件 URL 的合法部分。因此,只要您使用额外的“/”上传它,它将以包含“//”的名称存储在存储中 - 这意味着如果您随后请求包含“//”的对象,它将被返回。那么问题是Android应用程序要么需要更新,我猜这与Apple应用程序有同样的问题。一种解决方案是使用单斜线上传图像两次,然后使用双斜线上传图像 - 在您更新 Apple 应用程序以使其正常运行之前,这是一个短期解决方案吗?

    或者,您可以通过某种代理来路由 Apple 应用程序,您必须构建该代理来重写 URL。 IIS 具有重写支持,您可以在此处阅读更多信息:http://www.iis.net/downloads/microsoft/url-rewrite

    【讨论】:

    • 感谢您的回复。我曾认为重写 URL 或双重上传可能是一个解决方案。我认为我们要做的是通过修复更新我们的更新,同时为那些新应用程序使用新 URL。然后,一旦 80% 的用户更新到最新的应用程序,我们可以将他们更新为直接指向 azure,然后更新旧应用程序,只有一点流量指向重写机器
    猜你喜欢
    • 1970-01-01
    • 2012-06-19
    • 2012-10-27
    • 2018-03-18
    • 1970-01-01
    • 2014-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多