【问题标题】:Random CORS errors in softlayer object storagesoftlayer 对象存储中的随机 CORS 错误
【发布时间】:2018-04-16 15:53:43
【问题描述】:

该问题与 S3 存储桶 CORS 有关。我在浏览器的控制台中随机收到以下错误(有时,大多不是):

“请求的资源上不存在‘Access-Control-Allow-Origin’标头”

我已经通过 aws cli 检查了 CORS 是否已很好地启用:

$ aws s3api get-bucket-cors --endpoint-url "http://s3-api.us-geo.objectstorage.softlayer.net" --bucket bucket_name
{
"CORSRules": [
    {
        "AllowedHeaders": [
            "authorization"
        ], 
        "MaxAgeSeconds": 3000, 
        "AllowedMethods": [
            "GET"
        ], 
        "AllowedOrigins": [
            "*"
        ]
    }
  ]
 }

我想知道这个问题是否与 IBM Cloud API 的一些错误配置有关。

编辑:我的对象存储实例被配置为使用访问和密钥对的 IaaS。

PS:我已经在 IBM 云中打开了一张票,他们要求将我的请求重定向到 stackoverflow。

【问题讨论】:

  • 你有票吗?所以我可以跟进你为什么被要求在这里发帖?我只是想确保支持人员使用了正确的流程。
  • 是的,我有:#58467769。谢谢

标签: ibm-cloud-infrastructure


【解决方案1】:

为了消除对 IBM 云 API 方面可能存在的问题的任何疑问,您可以尝试使用 REST 调用,如 here 所述。

语法

GET https://{endpoint}/{bucket-name}?cors= # path style
GET https://{bucket-name}.{endpoint}?cors= # virtual host style

示例请求

GET /apiary?cors= HTTP/1.1
Authorization: Bearer {token}
Host: s3-api.us-geo.objectstorage.softlayer.net

对于 CURL 示例审查:

https://console.bluemix.net/docs/services/cloud-object-storage/cli/curl.html#using-curl-

我还建议查看以下链接:

https://console.bluemix.net/docs/services/ibm-cos/index.html

https://console.bluemix.net/docs/services/cloud-object-storage/getting-started.html

【讨论】:

  • 实际上,我的对象存储实例被配置为使用访问和密钥对的 IaaS。因此,我无法生成 IAM API 密钥来获取不记名令牌。就我而言,我使用 aws cli 来查询当前的 CORS 配置。
【解决方案2】:

我知道这个问题有一段时间,但我遇到了同样的问题,我能够弄清楚。当对象存储接收到名称中带有空格的对象时,就会出现问题。

所以我只是用_ 替换了空格,它就像一个魅力。

我在 JavaScript 中重命名文件的代码:

Var renamed file = new File([file], file.name.split(' ').join('_'), {type: file.type});

这解决了我的问题,希望你的问题也一样。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多