使用javascript

时间:2016-03-07 03:31:57

标签: javascript ajax http azure azure-storage

我上传到azure存储文件集合,作为单个“实体”。我要求提供此集合作为单独下载每个单独文件的选项,或作为文件的捆绑zip。如果可能的话,我希望文件直接由azure提供。

首先,我考虑了一些备选但不合需要的选项:

  • 将所有单个文件作为单独的blob上传到azure,并上传包含所有文件的单独zip文件。天蓝色存储中不需要的重复文件,但服务器负载最小(只需要上传文件两次,然后严格使用azure文件)
  • 仅将它们作为单独的文件上传,让它们通过我的外部服务器捆绑它们,反之亦然。不受欢迎的,每次使用我的服务器带宽和cpu周期,也可能更慢地服务于捆绑服务器,具体取决于服务器负载

理想情况下,我只想将它们作为预打包的zip上传,包含自定义blob DEFLATE标头(提示浏览器将这些文件压缩为服务),并在元数据中指定起始偏移量并压缩每个文件的长度。如果有一种方法可以在get参数中指定范围标题,那将是完美的,对于我可以发出html的图像,如:
<img src="azure.endpoint/container/somecollection.zip?range=256-542"/>
其中256-542是二进制位置zip中的图像和chrome将负责下载,解压缩和显示图像 - 不幸的是,我发现没有api用azure做这个。

似乎替代方法是使用ajax调用,指定Range标头,使用某种javascript deflate库,然后使用base64 data-uris加载它。所以我的问题如下:

  • 我在哪里可以开始用ajax和javascript实际做这样的事情?我玩弄了pako来解决这个问题,但是在尝试失败后我无法在浏览器中使用它。
  • 如果我正在加载大量这样的大图像,那么性能考虑会是什么,比如20张每张20MB的图像?
  • 这是否也会使发生的任何浏览器缓存无效,是否存在任何注意事项?
  • 是否有一个替代选项我忽略了提供要求?

0 个答案:

没有答案