在异地托管图像有啥害处吗? [关闭]

Posted

技术标签:

【中文标题】在异地托管图像有啥害处吗? [关闭]【英文标题】:Is there any harm in hosting images off site? [closed]在异地托管图像有什么害处吗? [关闭] 【发布时间】:2012-02-02 17:14:00 【问题描述】:

通过像 Imgur 这样的网站托管图片然后使用提供的代码将其插入我的网站有什么危害吗?与在我的服务器上托管图像并适当链接它们的传统方式相比。

【问题讨论】:

我不明白为什么关闭,这似乎是一个相当合理的问题 同意 Mike Mooney 的观点。我来这里是为了寻找一些关于这样做的见解。并非所有使用 Stack 的人都接触过每一个可能的 Web 开发场景。 【参考方案1】:

阅读您计划使用的网站的服务条款。从您的 Imgur 示例中,他们的 ToS 状态:

此外,请勿使用 Imgur 托管您从其他地方链接到的图片库、您网站的内容、广告、头像或任何其他将我们变成您的内容交付网络的内容。如果您这样做 - 我们将担任法官 - 或者如果您做任何违法的事情,除了我们可能拥有的任何其他合法权利外,我们将禁止您与您链接的网站一起使用,删除您的所有图片,举报您必要时向当局报告,并阻止您查看 Imgur.com 上托管的任何图像。我们是认真的。

——http://imgur.com/tos (20.04.2016)

我知道 Flickr 的 ToS 也说了类似的话(必须链接到 Flickr,不要滥用它等)。

编辑:您正在描述一个 CDN (http://en.wikipedia.org/wiki/Content_delivery_network),假设您使用信誉良好的提供商,它是一种完全可以接受的减少网页加载时间的方法。

【讨论】:

确认!那个 TOS 很烂。虽然我猜如果你大部分时间使用他们提供的链接而不是总是直接热链接,那可能没问题。【参考方案2】:

风险在于,Imgur 会离开并随身携带图像。或者他们存在您无法控制或无法查看的性能问题或中断。但理想情况下,一些图像托管平台会比你想出的任何东西更可靠。只要确保您保留一份您的副本,以便在您遇到 Imgur 问题时相对容易地切换回本地托管或其他图像托管平台。

同样,它会使您的部署复杂化。您不仅要上传一个网站,还需要将您的网站上传到您的服务器,将图像上传到另一个网站,然后进行任何必要的配置以确保您的生产版本指向正确的服务器(如反对指向 QA/Dev 服务器)。

此外,如果您的网站上有任何 HTTPS,请确保您从页面引用的任何图像(或 JS 或 CSS 或其他任何内容)也是 HTTPS,否则您的用户会感到烦人的“此页面包含不安全内容”错误。

最后,请确保您在托管公司的条款和条件范围内运营,他们可能不喜欢您向他们发送那么多流量,并且可能会阻止您或限制您。如果您不确定,请询问他们。

但是,如果您确实采用了这种方法,它通常可以带来许多性能优势。它减少了您网站的流量,并减轻了您的网络服务器的一些负载。一些浏览器也可能同时下载更多,因为一些浏览器版本只打开到单个域的一定数量的并发连接,但会打开到其他域的更多连接(尽管情况可能不再如此)。当然,Imgur 服务器可能比您的服务器更快,并且可能有一个内容交付网络 (CDN),可以将您的图像副本传输到世界各地,因此人们从本地内容缓存服务器获取内容,而不是总是返回你的服务器。

【讨论】:

【参考方案3】:

异地托管有以下优势:

    您无需支付带宽费用 CDN(内容交付网络)通常针对速度/缓存进行优化 其他域没有收到您当前域的任何 cookie(使请求大小更小) 异地主机可能拥有比您自己的服务器更好的基础架构(冗余、负载平衡等)

缺点:

    您不拥有托管映像的服务器 - 它们可能会在不通知您的情况下关闭、停业或删除您的文件。 如果担心安全问题,您对访问或潜在的安全漏洞的控制就会减少。 异地主机通常针对缓存进行优化,这意味着如果您替换异地主机上的图像,任何访问过该站点的人都可能会获得以前的版本,如果他们仍然缓存它,因此请相应地计划(你不能让你的用户按 CTRL+F5)。

【讨论】:

另一个缺点是,像 Imgur 这样的网站会使用随机文本字符来打乱文件名,这使得很难跟踪哪个图像在哪里。【参考方案4】:

你为什么要这样做,我觉得它很笨重。一方面,它很可能会减慢加载时间,虽然不是很明显,但至少足以让人注意到。此外,如果您的计划是将它们托管在诸如 imageshack 之类的免费网站上,那么您必须担心带宽问题。我会养成不这样做的习惯。

【讨论】:

我没有遵循这里的推理。内容交付服务的异地托管主要是为了缩短加载时间。它允许浏览器同时请求更多内容(有时浏览器不会向同一服务器发出太多请求),利用更多最终用户的带宽(如今最后一英里通常有大量未使用的资源),并卸载来自主机带宽的静态资源内容(向内容交付主机发出的请求,而不是所有者的主机)。 它对于慢速服务器也非常有用,因此加载时间会更好,因为最大的块由更快更好的服务器提供

以上是关于在异地托管图像有啥害处吗? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

对于基于(以前免费的)App Engine 构建的 Java/JDO 应用程序,有啥更实惠的托管选项? [关闭]

使用 NOLOCK 读取单个静态行。有啥害处?

网站的编码方式会影响我们在托管上的花费吗? [关闭]

我可以将 REST API 用于托管在 WordPress.com 上的网站吗[关闭]

用于 java 托管的 FreeBSD [关闭]

Java Servlet 托管 [关闭]