报错“Please set the etag of expose-headers in OSS”

21 阅读1分钟

最近有个分片上传的需求,我们使用了OSS分片上传功能,在分片上传时失败,并出现以下报错:

Please set the etag of expose-headers in OSS

根据官网发现可能是以下原因(help.aliyun.com/zh/oss/the-…

  • 跨域配置中暴露Headers未配置ETag值,在跨域上传时客户端获取不到ETag,从而上传失败。
  • 已有跨域规则存在冲突

解决方案为:

  • 使用分片上传文件时,需要在暴露Headers中配置ETag信息,具体操作如下:

    1. 登录OSS管理控制台

    2. 单击Bucket列表,之后单击目标Bucket名称。

    3. 选择数据安全>跨域设置,然后单击创建规则

      **说明

      如果已创建了规则,请单击规则右侧的编辑,修改配置。

    4. 创建跨域规则面板,设置跨域访问参数:

      • 来源设置为*
      • 依次选择允许Methods的全部选项,即GETPUTDELETEPOSTHEAD
      • 允许Headers设置为*
      • 暴露Headers设置为ETag。
    5. 设置完成后,单击确定即可。

  • 已有多条跨域规则时,由于规则可能存在冲突,故删除多余的跨域规则。

最后在OSS管理控制台设置了暴露Headers,问题成功解决。