0

我正在使用 Softlayer 对象存储并使用 SDK API 从部署在 IBM Bluemix 上的 Node.js 应用程序访问 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 中看不到任何此类选项。

请指教。

4

2 回答 2

0

Object Storage 使用标准 S3 API,您似乎选择了 Object Storage S3 API,以便您可以使用AWS SDK(在我的例子中为 php sdk)在存储桶级别启用 CORS 和其他策略。

我就是这样做的:

$s3Client->putBucketCors([
    'Bucket' => 'your-object-storage-bucket-name',
    'CORSConfiguration' => [
        'CORSRules' => [
            [
                'AllowedHeaders' => ['*'],
                'AllowedMethods' => ['GET', 'POST', 'PUT', 'DELETE'],
                'AllowedOrigins' => ['*'],
            ]
        ],
    ],
]);

关于IBM Softlayer:我大约3个月前报告了这个问题,我要求提供代码示例,但他们既没有解决我的问题,也没有提供具体的参考,这很可惜,因为运营商建议我必须在stackoverflow中发布这个问题并等待IBM开发人员回答是因为他们无法与他们沟通,所以文档很差,客户支持也令人失望。

我希望这些信息对你有所帮助。

于 2017-09-19T17:05:33.473 回答
0

请查看https://ibm-public-cos.github.io/crs-docs/crs-operations.html上的指南

这是 Cloud Object Storage (S3) 产品的官方文档。

于 2017-02-27T19:41:39.017 回答