Hotlinking Twitter头像图片?

时间:2010-02-04 01:05:41

标签: web-services amazon-s3 twitter

Twitter API为Twitter帐户“image_url”返回此值: http://a1.twimg.com/profile_images/75075164/twitter_bird_profile_bigger.png

在我的Twitter客户端webapp中,我正在考虑热链接在Amazon S3上托管的HTTPS版本的头像:https://s3.amazonaws.com/twitter_production/profile_images/75075164/twitter_bird_profile_bigger.png

任何会阻止我这样做的最佳做法?第三方Twitter客户端应用程序通常是否拥有自己的头像副本?

编辑:为了澄清,我需要对图像使用HTTPS,因为我的webapp将使用HTTPS连接,我不希望我的用户从他们的浏览器获得有关包含某些内容的页面的安全警告未经过身份验证的内容。例如,众所周知,Firefox会抱怨混合的http / https内容。

我的问题是弄清楚Twitter是否禁止对https网址进行热链接,因为这些网址不是来自其API的“公开”网址。我通过在HTTPS中连接到我的Twitter帐户时分析他们的Web客户端HTML源代码来获取它们。

3 个答案:

答案 0 :(得分:5)

您是否考虑将图像URL存储在应用程序中,或者根据需要为用户检索图像URL?

如果是后一个选项,那么我没有看到热链接图像的问题。如果您将图像网址的位置存储在您自己的系统中,那么每当图像发生变化时,我都会看到您断开链接(我相信他们将来会在某个时候更改网址)。

修改

好的,现在我看到了你的困境。我查看了API文档,并且在能够获取HTTPS中提供的图像或获取Amazon S3映像的URL方面似乎没有太多。您可以在自己的服务器上编写一个处理程序,它本质上会缓存&将HTTP映像重新作为HTTPS重新提供,但这会对您的服务器造成一些不必要的负载。除此之外,我没有遇到更好的解决方案。 GL

答案 1 :(得分:2)

事情似乎更新了。

请检查:https://dev.twitter.com/docs/user-profile-images-and-banners

  

配置文件图像的启用SSL的路径模板在profile_image_url_https中指示。上表演示了如何将相同的变体选择技术应用于基于SSL的图像。

答案 2 :(得分:1)

为什么要将图像复制到自己的网站空间?这会增加带宽成本,并且会出现缓存一致性问题。

使用API​​为您提供的URL。

我可以看到,您可能希望缓存API返回的URL一段时间,以减少API调用的数量。

如果你正在编写像iPhone应用程序这样的东西,那么在本地(在手机上)缓存图像是有意义的,以便完全避免网络流量,但用另一个URL替换一个URL应该没有区别(假设Twitter图像服务器工作可靠。)

为什么要HTTPS?