如何最大限度地从S3并行下载

我从单个页面上获取了很多从Amazon S3加载的图像,有时花费相当多的时间来加载所有图像。 我听说从不同的子域分割图像将有助于并行下载,但是,实际的实现是什么? 虽然很容易拆分像静态,图像等子域; 我应该像10个子域(image1,image2 …)加载说100个图像? 还是有一些聪明的办法呢?

(顺便说一句,我正在考虑使用memcache来cachingS3images;我不确定是否可以,我将不胜感激任何进一步的评论,非常感谢!

我会尝试按照可以帮助你的状态排列我的答案:

  • 正如我们在谈论静态内容,我build议使用Nginx作为反向代理服务器您的静态内容。 缓慢的下载可能是因为你正在达到Apache的并发连接数的限制。
  • 使用不同的或多个子域可能有助于浏览器本身的范围,但另一方面可能会影响你的网页在全球的速度和排名,因为你的子域将增加更多的DNSparsing请求,这是不好的事情。
  • 看看这样的:Cloudflare.com,他们有一些免费的很好的服务,从中受益。
  • 使用浏览器caching标题,这可能是一个很好的帮助,以防您的内容变化非常dynamic。
  • 尽量保持你的静态脚本(例如CSS,JS)总是尽量缩小。
  • 尝试使用一些服务,如: http : //tools.pingdom.com/fpt/和http://gtmetrix.com/,因为它们可以给你非常有价值的细节关于你的网页加载性能,除了有价值的提示,以获得更好的结果。
  • 尽量减less您的网页产生的请求(如将不同的风格或布局图片合并成较less的图片,并通过CSS控制)

嗯..这是我想到的东西。

您将得到的最大提速就是转向Amazon的CDN CloudFront,它可以坐在S3前面,为用户提供更快的速度。

一旦你这样做了,如果你愿意的话,你可以使多个CloudFront子域都指向相同的S3存储桶,然后你可以随机分配给图像,以便它们并行加载(本质上是你的image1,image2的想法)。

您将图片分割为多个CNAMES的想法是一个不错的select,最好由Google的最佳做法来描述: https : //developers.google.com/speed/docs/best-practices/rtt#ParallelizeDownloads