Amazon web services AWS JS SDK中ListBucket的CORS错误

Amazon web services AWS JS SDK中ListBucket的CORS错误,amazon-web-services,amazon-s3,aws-sdk,Amazon Web Services,Amazon S3,Aws Sdk,我正在尝试使用AWS JS SDK在前端列出与授权用户关联的bucket ListBucket API文档: 并且,listBucket请求失败,错误消息如下: 。对飞行前请求的响应 未通过访问控制检查:无“访问控制允许来源” 请求的资源上存在标头。起源 因此不允许访问“”。 响应的HTTP状态代码为403 如何为配置CORS AWS文档仅讨论为特定桶配置CORS . 但是,此请求用于列出经过身份验证的用户的所有bucket。S3区域端点,如S3-region.amazonaws.com不支持

我正在尝试使用AWS JS SDK在前端列出与授权用户关联的bucket

ListBucket API文档:

并且,listBucket请求失败,错误消息如下:

。对飞行前请求的响应 未通过访问控制检查:无“访问控制允许来源” 请求的资源上存在标头。起源 因此不允许访问“”。 响应的HTTP状态代码为403

如何为配置CORS

AWS文档仅讨论为特定桶配置CORS .
但是,此请求用于列出经过身份验证的用户的所有bucket。

S3区域端点,如S3-region.amazonaws.com不支持CORS。CORS仅在bucket上受支持(启用后)。所以不能调用ListBucket。如果AWS能够做到这一点,那就太好了,但可能有令人信服的理由不这么做


如果需要,您可以通过在web客户机中硬编码bucket名称(不理想),或者通过在存储在S3中的可读JSON文件中维护bucket列表来解决这个问题。就个人而言,我更喜欢后者,并会尝试使用。当然,您也可以要求用户提供bucket名称,但他们通常不会知道。

S3区域端点(如S3-region.amazonaws.com)不支持CORS。CORS仅在bucket上受支持(启用后)。所以不能调用ListBucket。如果AWS能够做到这一点,那就太好了,但可能有令人信服的理由不这么做


如果需要,您可以通过在web客户机中硬编码bucket名称(不理想),或者通过在存储在S3中的可读JSON文件中维护bucket列表来解决这个问题。就个人而言,我更喜欢后者,并会尝试使用。当然,您也可以要求用户提供bucket名称,但他们通常不会知道。

感谢您的确认。backend node.js或python可以列出bucket。因此,我尝试将此功能移动到后端,并在fronendI中呈现列表。我的想法是无服务器,但如果您有一台服务器,那么对列表存储桶的简单REST调用将非常有用;希望AWS文档能够清楚地说明此API仅适用于node.js;在浏览器中不工作。是的,同意。它实际上可以在任何不需要或可以禁用相同来源策略的地方工作。有些浏览器提供了禁用同源策略的选项,当然,您不应该在测试之外这样运行。请注意,这也与直接针对S3端点的其他API调用有关,例如,我希望createBucket以同样的方式失败。感谢您的确认。backend node.js或python可以列出bucket。因此,我尝试将此功能移动到后端,并在fronendI中呈现列表。我的想法是无服务器,但如果您有一台服务器,那么对列表存储桶的简单REST调用将非常有用;希望AWS文档能够清楚地说明此API仅适用于node.js;在浏览器中不工作。是的,同意。它实际上可以在任何不需要或可以禁用相同来源策略的地方工作。有些浏览器提供了禁用同源策略的选项,当然,您不应该在测试之外这样运行。请注意,这也与直接针对S3端点的其他API调用有关,例如,我希望createBucket以同样的方式失败。