我参与了一个使用JS API的粉丝页面项目,因此我们决定在Amazon S3存储桶上托管该网站a)它的静态内容和b)亚马逊自2011年10月起拥有Facebook应用程序所需的SSL证书。
但事实证明,Facebook没有进行HTTP GET,而是通过HTTP POST请求粉丝页面(额外的安全检查?为什么它们不仅仅是HTTP HEADERS?)。
亚马逊明智地发回以下内容:
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正试图通过POST上传
具有讽刺意味的是,Facebook实际上建议在http://www.facebook.com/note.php?note_id=10150223945345844上没有SSL证书的人使用S3
结论:2011年10月,有没有人设法在S3存储桶上托管粉丝页面?是否有可以帮助解决这个问题的存储桶策略?
答案 0 :(得分:1)
选项是使用cloudfront指向EC2实例。这将很乐意接受Post请求。只需确保在响应标头上设置了一个非常长的缓存TTL,以确保实例不会受到请求的影响。您仍然可以在s3中托管您的图片等。 EC2实例将负责翻译帖子请求。