最近有个分片上传的需求,我们使用了OSS分片上传功能,在分片上传时失败,并出现以下报错:
Please set the etag of expose-headers in OSS
根据官网发现可能是以下原因(help.aliyun.com/zh/oss/the-…
- 跨域配置中暴露Headers未配置ETag值,在跨域上传时客户端获取不到ETag,从而上传失败。
- 已有跨域规则存在冲突
解决方案为:
-
使用分片上传文件时,需要在暴露Headers中配置ETag信息,具体操作如下:
-
登录OSS管理控制台。
-
单击Bucket列表,之后单击目标Bucket名称。
-
选择数据安全>跨域设置,然后单击创建规则。
**说明
如果已创建了规则,请单击规则右侧的编辑,修改配置。
-
在创建跨域规则面板,设置跨域访问参数:
- 将来源设置为
*
。 - 依次选择允许Methods的全部选项,即GET、PUT、DELETE、POST、HEAD。
- 将允许Headers设置为
*
。 - 将暴露Headers设置为ETag。
- 将来源设置为
-
设置完成后,单击确定即可。
-
-
已有多条跨域规则时,由于规则可能存在冲突,故删除多余的跨域规则。
最后在OSS管理控制台设置了暴露Headers,问题成功解决。