使用OSS分片上传功能上传文件时报“Please set the etag of expose-headers in OSS”错误

问题描述

OSS控制台设置了跨域CORS规则后,使用分片上传功能上传文件时失败,并出现以下报错。

Please set the etag of expose-headers in OSS

问题原因

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

  • 已有跨域规则存在冲突。

解决方案

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

    1. 登录OSS管理控制台

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

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

      说明

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

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

      • 来源设置为*

      • 依次选择允许Methods的全部选项,即GETPUTDELETEPOSTHEAD

      • 允许Headers设置为*

      • 暴露Headers设置为ETag。

    5. 设置完成后,单击确定即可。

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