Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何配置aws s3 bucket以接受Heroku上的签名URL?_Amazon Web Services_Heroku_Amazon S3_Permissions_Acl - Fatal编程技术网

Amazon web services 如何配置aws s3 bucket以接受Heroku上的签名URL?

Amazon web services 如何配置aws s3 bucket以接受Heroku上的签名URL?,amazon-web-services,heroku,amazon-s3,permissions,acl,Amazon Web Services,Heroku,Amazon S3,Permissions,Acl,我使用Node.js从aws s3获取签名url,使用(aws sdk)模块中的putObject。当我在本地运行服务器时,上传到S3没有问题。当我将代码部署到heroku并选择要上载的文件时,我的chrome控制台中出现以下错误: …4&Signature=P7ybw4%2B2qqNRNKTZbc%2FMWLhPn1o%3D&x-amz-acl=公共读写加载资源失败:服务器响应状态为403(禁止) 我正在使用Node.js(aws sdk)s3getSignedUrl方法获取签名,并将其发送到

我使用Node.js从aws s3获取签名url,使用(aws sdk)模块中的putObject。当我在本地运行服务器时,上传到S3没有问题。当我将代码部署到heroku并选择要上载的文件时,我的chrome控制台中出现以下错误:

…4&Signature=P7ybw4%2B2qqNRNKTZbc%2FMWLhPn1o%3D&x-amz-acl=公共读写加载资源失败:服务器响应状态为403(禁止)

我正在使用Node.js(aws sdk)s3getSignedUrl方法获取签名,并将其发送到前端,以将我的文件上载到我的s3存储桶


我遵循的教程是仔细检查S3存储桶的权限和CORS配置。您需要确保该策略允许在您的bucket上使用“s3:PutObject”,并且您需要确保CORSRule允许PUT/POST并允许您的应用程序的域


调试这些东西时,您可以考虑暂时放宽所有权限,以“完全打开”,并检查它在完全不受限制的情况下工作。 好的,我通过创建一个新的存储桶来解决这个问题,更新CORS配置,创建新的访问密钥ID和访问密钥,并更新heroku环境变量(我还选择了存储桶与我的heroku应用程序位于同一区域,但不确定这是否是解决方案)。使用的CORS配置为:


*
得到
邮递
放
*
我所说的“完全开放”是指授予AmazonS3FullAccess权限、在CORS配置中设置*的AllowedOrigin等。