位置: IT常识 - 正文

关于oss使用sts 后台签发临时token前端直传大文件的错误记录(oss使用场景)

编辑:rootadmin
关于oss使用sts 后台签发临时token前端直传大文件的错误记录 文章目录前言遇到的问题1. NoSuchBucket : The specified bucket does not exist.2. com.aliyuncs.exceptions.ClientException: InvalidParameter.RoleSessionName : The parameter RoleSessionName is wrongly formed.3. 报错:Access to XMLHttpRequest at '上传url' from origin '本地url' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.4.报错:Multipart upload 'xxx' failed === ConnectionTimeoutError: Connect timeout for 60000ms5. 报错:Error: Please set the etag of expose-headers in OSS6. 报错:OperationNotSupportedError: This operation don't support x-oss-storage-class.前言

推荐整理分享关于oss使用sts 后台签发临时token前端直传大文件的错误记录(oss使用场景),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:oss常用功能,oss如何使用,oss使用教程,使用oss的好处,oss使用教程,oss使用场景,oss用法,使用oss的好处,内容如对您有帮助,希望把文章链接给更多的朋友!

遇到的问题1. NoSuchBucket : The specified bucket does not exist.

这个问题出现在执行下面这条代码时:

// 添加endpoint(直接使用STS endpoint,前两个参数留空,无需添加region ID)DefaultProfile.addEndpoint("", "", "Sts", ENDPOINT);// 进行角色授权 构造default profile(参数留空,无需添加region ID)IClientProfile profile = DefaultProfile.getProfile("", accessKeyId, accessKeySecret);// 用profile构造clientDefaultAcsClient client = new DefaultAcsClient(profile);final AssumeRoleRequest request = new AssumeRoleRequest();request.setMethod(MethodType.POST);request.setRoleArn(roleArn); // role-Arnrequest.setRoleSessionName(roleSessionName); request.setDurationSeconds(durationSeconds); // 3600s// 针对该临时权限可以根据该属性赋予规则,格式为json,没有特殊要求,默认为空// request.setPolicy(policy); // Optionalfinal AssumeRoleResponse response = client.getAcsResponse(request);AssumeRoleResponse.Credentials credentials = response.getCredentials();final AssumeRoleResponse response = client.getAcsResponse(request);

然后找资料无意中发现有位博主特意最后提示了一句:

endpoint 不是 oss 的 endpoint 而是 sts 的 endpoint. 如果用了oss的endpoint,则会报错:bucket not exists.

补:参考sts文档链接:sts接入点

2. com.aliyuncs.exceptions.ClientException: InvalidParameter.RoleSessionName : The parameter RoleSessionName is wrongly formed.

原因是 roleSessionName 我设置成了空串。

private static final String roleSessionName = "";关于oss使用sts 后台签发临时token前端直传大文件的错误记录(oss使用场景)

改为:

private static final String roleSessionName = "alice";

官方该参数给的示例而已,可能不能为空串吧。

3. 报错:Access to XMLHttpRequest at ‘上传url’ from origin ‘本地url’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

具体报错信息截图:

看到这个第一时间其实我就想到了是阿里云控制台跨域规则配置有问题,截图里分片上传是以PUT的提交方式,赶紧去看了一下配置规则,果然前人只配置的是GET、POST。(PS:由于我接手改造,故能不动原先设置就尽量不动,先从代码找问题)。最后改了阿里云跨域配置规则后,这个问题得到解决。

补一下,跨域配置: ①控制台输入oss,进入oss控制台; ②打开bucket列表,点击任意一个bucket; ③点击数据安全——>跨域设置; ④添加跨域规则: over~

4.报错:Multipart upload ‘xxx’ failed === ConnectionTimeoutError: Connect timeout for 60000ms

文档有说:

在使用MultipartUpload接口时,如果遇到ConnectionTimeoutError超时问题,业务方需自行处理超时逻辑。例如通过缩小分片大小、增加超时时间、重试请求或者捕获ConnectionTimeoutError错误等方法处理超时。更多信息,请参见网络错误处理。

这个问题,我这里解决办法就是,设置分片为100MB,以及设置超时时间:

const options = { // 获取分片上传进度、断点和返回值。 progress: (p, cpt, res) => { console.log(p); }, // 设置并发上传的分片数量。 parallel: 4, // 设置分片大小。默认值为1 MB,最小值为100 KB。 partSize: 1024 * 1024 * 100, headers, // 自定义元数据,通过HeadObject接口可以获取Object的元数据。 //meta: { year: 2020, people: "test" }, mime: "text/plain", timeout: 120000 // 设置超时时间};5. 报错:Error: Please set the etag of expose-headers in OSS

截图: 那么根据提示,去查看这个帮助文档:https://help.aliyun.com/document_detail/32069.html 然后在前提条件,点击安装 注意这里: 这里:

ETag x-oss-request-id x-oss-version-id

6. 报错:OperationNotSupportedError: This operation don’t support x-oss-storage-class.

截图如下: 去查了 http错误码及oss错误排查,没发现有对这个错误的介绍。只是发现在设置headers时,有这一项的设置,我只好注释掉。 原headers:(根据官方文档示例写的)

const headers = { // 指定该Object被下载时的网页缓存行为。 "Cache-Control": "no-cache", // 指定该Object被下载时的名称。 //"Content-Disposition": "example.txt", // 指定该Object被下载时的内容编码格式。 "Content-Encoding": "utf-8", // 指定过期时间,单位为毫秒。 //Expires: "1000", "Access-Control-Allow-Origin": "*", // 指定Object的存储类型。 //"x-oss-storage-class": "Standard", // 指定Object标签,可同时设置多个标签。 "x-oss-tagging": "Tag1=1&Tag2=2", // 指定初始化分片上传时是否覆盖同名Object。此处设置为true,表示禁止覆盖同名Object。 "x-oss-forbid-overwrite": "true", "Content-Type": 'application/x-www-form-urlencoded'};

感觉注释掉并不是好的解决办法,虽然不再报这个错误,哈哈。

本文链接地址:https://www.jiuchutong.com/zhishi/289709.html 转载请保留说明!

上一篇:将scss文件转换成css文件(sass转化为css)

下一篇:Linux系统驱动跟裸机驱动的区别(linux驱动和windows驱动)

  • 尼康d5600怎么传照片到手机(尼康d5600怎么传照片)

    尼康d5600怎么传照片到手机(尼康d5600怎么传照片)

  • wps水印怎么设置(wps水印怎么设置透明度)

    wps水印怎么设置(wps水印怎么设置透明度)

  • 智行怎么取消抢票订单(智行怎么取消抢票订单退款)

    智行怎么取消抢票订单(智行怎么取消抢票订单退款)

  • 华为nova7se有指纹解锁功能吗(华为nova7se指纹键在哪里)

    华为nova7se有指纹解锁功能吗(华为nova7se指纹键在哪里)

  • 华为p40pro限量套装是啥(华为p40pro限量套装有黑色的吗)

    华为p40pro限量套装是啥(华为p40pro限量套装有黑色的吗)

  • 苹果7微信语音按不住的原因(苹果7微信语音显示麦克风启用不成功)

    苹果7微信语音按不住的原因(苹果7微信语音显示麦克风启用不成功)

  • 微信打字自动转换英文(微信打字自动转换韩文)

    微信打字自动转换英文(微信打字自动转换韩文)

  • 电脑括号怎么打按哪个键盘呢(平板电脑括号怎么打)

    电脑括号怎么打按哪个键盘呢(平板电脑括号怎么打)

  • 备忘录闪退怎么回事(手机备忘录闪退进不去怎么办)

    备忘录闪退怎么回事(手机备忘录闪退进不去怎么办)

  • 华为手机开启hd的利弊(华为手机开启hd为什么不显示)

    华为手机开启hd的利弊(华为手机开启hd为什么不显示)

  • 红米note8pro电池耐用吗(红米note8Pro电池多少钱)

    红米note8pro电池耐用吗(红米note8Pro电池多少钱)

  • 收发电子邮件属于iso中什么层的功能(收发电子邮件属于OSI/RM中___________层的功能)

    收发电子邮件属于iso中什么层的功能(收发电子邮件属于OSI/RM中___________层的功能)

  • mac系统如何卸载(mac系统如何卸载软件)

    mac系统如何卸载(mac系统如何卸载软件)

  • oppo一个电话标志加hd(oppo手机来电显示一个号码)

    oppo一个电话标志加hd(oppo手机来电显示一个号码)

  • 手机定时关机定时开机怎么做(手机定时关机定时开机对手机有影响吗)

    手机定时关机定时开机怎么做(手机定时关机定时开机对手机有影响吗)

  • 小米8se投屏教程(小米8se能投屏看电视吗)

    小米8se投屏教程(小米8se能投屏看电视吗)

  • 问卷星重新填写会覆盖吗(问卷星重新填写之前提交的还在吗)

    问卷星重新填写会覆盖吗(问卷星重新填写之前提交的还在吗)

  • 微信群不见了是被踢了吗(微信群不见了是不是解散了)

    微信群不见了是被踢了吗(微信群不见了是不是解散了)

  • 微信扫码扫不出来怎么回事(微信扫码扫不出来是假货吗?)

    微信扫码扫不出来怎么回事(微信扫码扫不出来是假货吗?)

  • 小米手机gps设置在哪里(小米手机gps在哪里设置)

    小米手机gps设置在哪里(小米手机gps在哪里设置)

  • 打开未知格式时总是跳出在应用商店中查找(未知格式或损坏文件怎么办)

    打开未知格式时总是跳出在应用商店中查找(未知格式或损坏文件怎么办)

  • 卡国家公园的黄毛果蝠,赞比亚 (© Nick Garbutt/Minden Pictures)(国家公园好玩吗)

    卡国家公园的黄毛果蝠,赞比亚 (© Nick Garbutt/Minden Pictures)(国家公园好玩吗)

  • 财产租赁所得怎么交税
  • 税友财务软件一年多少钱
  • 劳务外包人员算不算从业人员
  • 小规模纳税人冲红退税吗
  • 电子发票如何发给用截图发送可以吗?
  • 搬家费账务处理
  • 行政事业单位凭证培训课件
  • 单位职工医疗补助
  • 预收房款发票开具需要注意哪些?
  • 3%的增值税专用发票可以退税吗可以抵扣吗
  • 企业进项发票不够
  • 税务局拍卖资产
  • 专票开户行信息少股份有限公司有影响吗?
  • 公司房产税如何计算器
  • 什么叫金税四期呢?
  • 买标书怎么做分录
  • 软件企业产品如何销售
  • 新办的营业执照多久可以注销
  • 办公室零食知乎
  • 营改增后增值税税率的调整
  • 红字发票如何填写摘要
  • 计算当期应纳税额
  • 临时使用自建商品房是否需要缴纳房产税?
  • 如何恢复微信语言聊天
  • js app框架
  • 利润分配会计处理时间
  • 生产车间折旧为0的原因
  • 出口退税的会计分录实例
  • 证券权益包括哪些内容
  • 工程暂估收入入账的会计分录
  • 人际关系定义是什么
  • kms.exe
  • 阳澄湖大闸蟹的功效和作用
  • nvm for window
  • 新手会计怎么做帐
  • 设备维修产生的人工费怎么开发票
  • vue3.0优点
  • HTML+CSS+JavaScript仿京东购物商城网站 web前端制作服装购物商城 html电商购物网站
  • 蓝桥杯2021出结果
  • jquery设置不可用
  • 外贸企业出口免税政策
  • 客户购买商品的条件?
  • 企业盈利不交所得税的办法
  • 设计服务的成本票可以暂估吗
  • 企业管理咨询合作协议
  • 多缴纳的社保怎么查询
  • 租赁办公场所的法律规定
  • 未分配利润做账
  • mysql复制一条记录
  • SQLServer 2008 Merge语句的OUTPUT功能
  • 外经证办好了后怎么开票
  • 如何查询开出的电子发票
  • 库存现金太多违反什么规定
  • 红冲去年费用会计分录
  • 福利费可以计入销售费用吗
  • 如何进行税前扣除
  • 企业名称变更后税务变更需要什么资料
  • 定额发票和增值税普通发票的区别
  • 一般纳税人抵扣进项税流程
  • 深度解析天梁坐命
  • linux缺省的shell
  • linux修改系统日期命令
  • gsicon.exe是什么进程 作用是什么 gsicon进程查询
  • win8.1安装更新卡住
  • win 10文件
  • win7桌面右键菜单多余选项删除
  • cocos2dx 教程
  • Android: Receiving Data from the Send Intent,将自己的app注册系统分享
  • angular2双向数据绑定原理
  • jQuery Validation PlugIn的使用方法详解
  • 原生js实现路由
  • javascript总结笔记
  • ubuntu20.04 python
  • js class 私有方法
  • javascript面向对象精要pdf
  • 有机肥料销售是做什么的
  • 江苏省财务官网
  • 青海省地方税务局领导名单
  • 车船税优惠政策2022年
  • 税务局拒开发票
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设