我正在使用Softlayer对象存储并使用部署在IBM Bluemix上的Node.js应用程序中的SDK API访问S3存储桶中的对象。我可以在桶中插入对象,但在使用SDK API访问对象时,我收到如下CORS错误:
XMLHttpRequest cannot load https://s3-api.us-geo.objectstorage.softlayer.net/<my bucket-name>/<my object-name>. No. 'Access Control-......Allow-Origin' header is present on the requested source. Origin 'http://localhost:6009' is therefore not allowed.
在AWS S3中,我们可以在存储桶级别配置属性,我们可以显式启用CORS,但之后我在Softlayer中看不到任何此类选项。
请告知。
答案 0 :(得分:0)
请查看https://ibm-public-cos.github.io/crs-docs/crs-operations.html
上的指南这是云对象存储(S3)产品的官方文档。
答案 1 :(得分:0)
对象存储使用标准S3 API,您似乎已选择了对象存储S3 API,以便您可以使用AWS SDK (php sdk in my case)在存储桶级别启用CORS和其他策略。
我是怎么做到的:
$s3Client->putBucketCors([
'Bucket' => 'your-object-storage-bucket-name',
'CORSConfiguration' => [
'CORSRules' => [
[
'AllowedHeaders' => ['*'],
'AllowedMethods' => ['GET', 'POST', 'PUT', 'DELETE'],
'AllowedOrigins' => ['*'],
]
],
],
]);
关于IBM Softlayer:我在3个月前报告了这个问题,我要求提供代码示例,但他们既没有解决我的问题也没有提供具体的参考,这很糟糕,因为运营商建议我必须发布这个问题在stackoverflow中等待IBM开发人员的答案,因为他们无法与他们沟通,因此文档很差,客户支持令人失望。
我希望此信息可以帮助您。