文章有名称 要在不创建 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>
请提供正确的用户指南,我应该如何处理我已付费但未按预期工作的服务
我想出了如何解决我遇到的cors问题。首先需要有该库,并且有一个如何设置 cors conf 的示例 https://github.com/awsdocs/aws-doc-sdk-examples/blob/main/php/example_code/s3/PutBucketCors.php 默认情况下 cors 配置为空。当 PutBucketCors 使用允许来源 * 执行时,每个文件的 URL 将能够读取