如何在softlayer对象存储中启用CORS

时间:2017-02-26 15:42:57

标签: ibm-cloud ibm-cloud-infrastructure object-storage

我正在使用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中看不到任何此类选项。

请告知。

2 个答案:

答案 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开发人员的答案,因为他们无法与他们沟通,因此文档很差,客户支持令人失望。

我希望此信息可以帮助您。