2012-02-27 88 views
6

我参与了使用JS API的fanpage项目,因此我们决定将该站点托管在Amazon S3存储桶上,因为它是静态内容和b)Amazon有SSL证书Facebook应用程序自2011年10月以来。FaceBook通过POST加载HTTPS托管的iframe应用程序

但事实证明,Facebook正在通​​过HTTP POST(额外的安全检查?为什么不只是HTTP头部?)请求HTTP页面。

亚马逊明智地发回如下:

405 Method Not Allowed 
Code: MethodNotAllowed 
Message: The specified method is not allowed against this resource. 
ResourceType: OBJECT 
Method: POST 
RequestId: XXXXXXXXXXXXX 
HostId: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 

...因为它的数字称Facebook正试图通过发布上传

具有讽刺意味的是,Facebook的实际推荐使用S3对于那些谁不没有SSL证书http://www.facebook.com/note.php?note_id=10150223945345844

底线:有没有人设法在2011年10月发布的S3存储桶中托管粉丝页?有没有可以帮助解决这个问题的桶策略?

+0

该文章可能是在Facebook添加该功能之前编写的。 Canvas iframe现在总是通过POST形式加载(用于额外的安全性或其他),并且不能再关闭。看起来像死胡同 – ori 2012-02-27 19:43:57

+0

现在,大多数域名都可以在不到24小时内获得免费的SSL证书。使用S3是因为你没有证书,对我来说似乎很愚蠢。 – 2012-02-27 22:23:55

回答

1

一个选项是使用cloudfront指向一个EC2实例。这将愉快地接受Post请求。只要确保在响应头中设置了非常长的缓存TTL,以确保实例不会受到请求的影响。您仍然可以在s3中托管您的图片等。 EC2实例将仅负责翻译帖子请求。