我应该要求用户上传图像或将其托管在其他地方并提供链接吗?

时间:2011-05-04 21:17:04

标签: web-applications

我正在开发一款应用程序,其中包含允许用户在面向公众的页面上显示照片的基本功能。

寻找一些观点,了解更好的做法是进行图片文件上传还是让用户提供指向已在其他地方托管的图片的链接。

选择有哪些注意事项?跳过转移和托管图像的负担并将它们托管在其他地方(即Flickr,Photobucket等)是不是更有意义?

4 个答案:

答案 0 :(得分:2)

如果您有足够的空间,我宁愿主持图像有很多原因:

  • 您可以控制您的网站发送的内容
  • 如果您的网站已开启,则会显示图片,并且您不依赖某些可能不起眼的服务器来显示图像
  • 您不需要用户拥有其他网站来存储他的图片
  • 很多人都不知道如何提供图片链接

答案 1 :(得分:0)

这两种方法都有其含义。让用户将图像存储在其他服务器上意味着您在架构中引入了依赖关系。如果他们选择将它们存储在有人访问您的页面时恰好关闭的服务器上,那么这些图像将无法使用。但是你得到了不必处理它们的好处。

在某些情况下,从其他服务器引用图像可能被认为是不好的做法,因为对于托管在其他服务器上的图像,您实质上是“窃取带宽”。有关此问题的详细讨论,请参阅http://altlab.com/hotlinking.html

通过不控制图像的托管位置,您无法控制图像的浏览器缓存能力。如果您托管它们,那么您可以设置适当的缓存标头,以便在将图像用于重复的页面查看时,可以对图像进行浏览器缓存,以获得更好的性能。基本上,如果它们不在您的服务器上,您会放弃一些控制权并在您认为合适时使用它们的能力。

使用其他来源(如Flickr)意味着您可以获得大量预先开发的API。从本质上讲,如果您将其他服务器用作服务,那么您将获得使用服务的所有好处。但是,如果由用户选择位置,这些好处可能无法实现,因为他们可能选择在低于标准的源上托管他们的图像。

这些是要考虑的一些事情。可能没有“正确”的答案 - 但任何一种方法都会有权衡。

答案 2 :(得分:0)

我只会提到缺点,因为专业人士很明显

在其他地方上传消息

  • 无法直接控制图像(有些可能会被滥用等删除)
  • 版权问题
  • 可能会更改API,网站可能已关闭,网址格式已更改
  • 政策可能会更改

自我承诺的消费

  • 需要大量资源
  • 需要设置审核小组(以确保它们不会滥用)
  • 可能会成为某些XSS攻击的目标,因此会出现额外的安全问题

对我来说,自托管是一个更好的选择

答案 3 :(得分:0)

值得注意的是,Stackoverflow使用imgur.com来托管附加到非链接的帖子并且工作得相当好的图像,但确实有前面提到的缺点。

此外,还有另外两个未提及的问题。

  1. 虽然可能不会被某些组织阻止,但imgur.com可能会阻止。例如,当我在工作时,我在SO帖子上看不到任何图像

  2. 如果您对网站编码方式不够谨慎unpredicable things may happen