gpt4 book ai didi

amazon-web-services - 如何配置 AWS S3 以允许 POST 像 GET 一样工作

转载 作者:行者123 更新时间:2023-12-04 08:08:24 24 4
gpt4 key购买 nike

Facebook 在其 Canvas 设置文档中声明:

Our servers will make an HTTP POST request to this web address. The retrieved result will be displayed within the Canvas frame on Facebook.



我的应用程序作为静态网站托管在 AWS S3 上,使用以下 CORS 配置:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>HEAD</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>Authorization</AllowedHeader>
</CORSRule>
</CORSConfiguration>

我已经在这里遇到了问题。 GET请求工作正常,但 POST转至 http://my-bucket-name.s3-website-us-east-1.amazonaws.com反击:
<html>
<head>
<title>405 Method Not Allowed</title>
</head>
<body>
<h1>405 Method Not Allowed</h1>
<ul>
<li>Code: MethodNotAllowed</li>
<li>Message: The specified method is not allowed against this resource.</li>
<li>Method: POST</li>
<li>ResourceType: OBJECT</li>
<li>RequestId: 94159551A72424C7</li>
<li>HostId: +Lcz+XaAzL97Y47OZFvaTwqz4Z7r5koaJGHjZJBBMOTUHyThTfKbZG6IxJtYEbtsXWcb/bFxeI8=</li>
</ul>
<hr/>
</body>
</html>

第 1 步:^ 我想我需要让它发挥作用。

但是等等,还有更多

Facebook 还需要一个 安全 网址。所以为此,我去了cloudfront。

我的配置是这样的:

Cloudfront Configuration

More Cloudfront Configuration

就像直接使用 S3 一样,制作 GET请求 https://app-cloudfront-id.cloudfront.net/像冠军一样工作,POSTing,反击:
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>MethodNotAllowed</Code>
<Message>The specified method is not allowed against this resource.</Message>
<Method>POST</Method>
<ResourceType>OBJECT</ResourceType>
<RequestId>657E87A80AFBB3B0</RequestId>
<HostId>SY2g4smvhr06kAAQYVMsYeQZ+pSKbIIvsh/OaPBiMADGt5UKut0sXSZkFsnFmcRXQ2PFBVgPK4M=</HostId>
</Error>

在 facebook.com 上查看该应用程序显示:

app on facebook

我错过了什么吗?

最佳答案

所以 - 我也认为这应该很容易并且在 2016 年得到 AWS 的良好支持。显然,从我所做的所有阅读来看,我们错了。

没有办法从 s3 为 facebook 应用程序提供索引页面 - 无论是否有 cloudfront。

可能可以通过 cloudfront 和 s3 的其他所有内容从备用来源(即,您自己的 httpd 在某处运行)提供索引页面 - 但我还没有尝试深入研究那个兔子洞。如果您仍然必须运行自己的 HA httpd...根据您的 Assets 规模,复杂性可能不值得。即 http://www.bucketexplorer.com/documentation/cloudfront--how-to-create-distributions-post-distribution-with-multiple-origin-servers.html

你 - 可以 - 在你自己的源 httpd 前面使用 cloudfront 来提供静态内容以利用缓存和边缘分布 - 它只会将 POST(和 PUT 等)转发到你的源并绕过缓存边缘。

这些答案是旧的,大约在 2011 年,但我找不到任何证据表明任何事情都发生了变化。

https://forums.aws.amazon.com/thread.jspa?messageID=228988&#228988

https://forums.aws.amazon.com/thread.jspa?threadID=62525

希望我们可以在此线程上进行一些事件以证明我错了,我现在也可以使用它。

关于amazon-web-services - 如何配置 AWS S3 以允许 POST 像 GET 一样工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36404379/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com