Heroku Bucketeer CORS 要在不创建 AWS 帐户的情况下将 S3 添加到您的应用程序,请参阅 Bucketeer

问题描述 投票:0回答:1

文章有名称 要在不创建 AWS 账户的情况下将 S3 添加到您的应用程序,请参阅 Bucketeer 附加组件。 那么如何解决CORS??

我添加了 Bucketeer。我使用该凭据配置了我的应用程序

BUCKETEER_AWS_ACCESS_KEY_ID
BUCKETEER_AWS_SECRET_ACCESS_KEY
BUCKETEER_AWS_REGION
BUCKETEER_BUCKET_NAME

然后,当我尝试打开我的附件文件时,遇到了 CORS 错误。在你的文档中你说

CORS Settings
Bucketeer credentials give you full access to modifying your bucket. This means that you can upload a new CORS policy at any time via an S3 client and the PUT Bucket CORS endpoint.

See example below.

好吧,我做到了。我点击了 PUT Bucket CORS,这将我重定向到 https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketCors.html

以及我在这里看到的示例

PUT /?cors HTTP/1.1
Host: Bucket.s3.amazonaws.com
Content-MD5: ContentMD5
x-amz-sdk-checksum-algorithm: ChecksumAlgorithm
x-amz-expected-bucket-owner: ExpectedBucketOwner

但是Heroku没有提供Checksum算法,ExpectedBucketOwner

我正在查看 GetBucketCors

GET /?cors HTTP/1.1
Host: Bucket.s3.amazonaws.com
x-amz-expected-bucket-owner: ExpectedBucketOwner

同样的问题,我应该为标头 x-amz-expected-bucket-owner 取值 ExpectedBucketOwner

curl --location 'https://bucketeer-5a7f7a9b-c93f-4b05-9e7e-835d595eacae.s3.amazonaws.com/?cors=null'
--header 'Host: Bucket.s3.amazonaws.com'
--header '???????'

我测试过

<?xml version="1.0" encoding="UTF-8"?>
<Error>
    <Code>InvalidBucketOwnerAWSAccountID</Code>
    <Message>The value of the expected bucket owner parameter must be an AWS Account ID... [....]</Message>
    <RequestId>....</RequestId>
    <HostId>....</HostId>
</Error>

请提供正确的用户指南,我应该如何处理我已付费但未按预期工作的服务

amazon-s3 heroku
1个回答
0
投票

我想出了如何解决我遇到的cors问题。首先需要有该库,并且有一个如何设置 cors conf 的示例 https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/php/example_code/s3/PutBucketCors.php 默认情况下 cors 配置为空。当 PutBucketCors 使用允许来源 * 执行时,每个文件的 URL 将能够读取

© www.soinside.com 2019 - 2024. All rights reserved.