位置: 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驱动)

  • 抖音极速版怎么扫一扫(抖音极速版怎么没有签到领金币了)

    抖音极速版怎么扫一扫(抖音极速版怎么没有签到领金币了)

  • 支付宝语音提示怎么设置(支付宝语音提示收款)

    支付宝语音提示怎么设置(支付宝语音提示收款)

  • 苹果edge什么意思(iphone显示edge是手机问题吗)

    苹果edge什么意思(iphone显示edge是手机问题吗)

  • 探探需要花钱才能聊天吗(探探需要花钱才能直播吗)

    探探需要花钱才能聊天吗(探探需要花钱才能直播吗)

  • 小米手表color有啥功能(小米手表color有没有nfc)

    小米手表color有啥功能(小米手表color有没有nfc)

  • 抖音中英文设置在哪(抖音调成英文了怎么换成中文)

    抖音中英文设置在哪(抖音调成英文了怎么换成中文)

  • 3470和3570差距多少(3570比3470性能强多少)

    3470和3570差距多少(3570比3470性能强多少)

  • 苹果xsmax前置呼吸灯怎么设置(iphonexs前置呼吸灯怎么亮)

    苹果xsmax前置呼吸灯怎么设置(iphonexs前置呼吸灯怎么亮)

  • 为什么pdf文件打开是浏览器(为什么pdf文件打开一会就自动关了)

    为什么pdf文件打开是浏览器(为什么pdf文件打开一会就自动关了)

  • qq聊天记录可以保存多久(qq聊天记录可以备份吗)

    qq聊天记录可以保存多久(qq聊天记录可以备份吗)

  • 抖音头像有个抖音符号是什么意思(抖音头像上面有个抖音的图标)

    抖音头像有个抖音符号是什么意思(抖音头像上面有个抖音的图标)

  • 淘气值多少可以极速退款(淘气值多少可以助力喵币)

    淘气值多少可以极速退款(淘气值多少可以助力喵币)

  • 荣耀v30和荣耀30s的区别(荣耀V30和荣耀30青春版手机壳通用吗)

    荣耀v30和荣耀30s的区别(荣耀V30和荣耀30青春版手机壳通用吗)

  • 淘宝昵称能改多少次(淘宝昵称可以随时改吗)

    淘宝昵称能改多少次(淘宝昵称可以随时改吗)

  • mate30pro不小心掉水里咋办(华为mate30pro掉地上)

    mate30pro不小心掉水里咋办(华为mate30pro掉地上)

  • 台式电脑卡换什么硬件(台式电脑卡换什么配件就行了)

    台式电脑卡换什么硬件(台式电脑卡换什么配件就行了)

  • icloud密码是id密码吗(icloud密码和apple id密码不一样吗)

    icloud密码是id密码吗(icloud密码和apple id密码不一样吗)

  • 微信qq是一个公司吗(微信和qq一个公司吗)

    微信qq是一个公司吗(微信和qq一个公司吗)

  • 计算机病毒是什么(计算机病毒是什么代码)

    计算机病毒是什么(计算机病毒是什么代码)

  • 苹果x怎么设置电充满(苹果x怎么设置铃声歌曲)

    苹果x怎么设置电充满(苹果x怎么设置铃声歌曲)

  • 抖音里收藏的作品怎么删除(抖音里收藏的作品占内存吗)

    抖音里收藏的作品怎么删除(抖音里收藏的作品占内存吗)

  • b站怎么缓存视频(b站怎么缓存视频到本地相册)

    b站怎么缓存视频(b站怎么缓存视频到本地相册)

  • 苹果7plus卡贴机激活步骤(苹果7plus卡贴机怎么样)

    苹果7plus卡贴机激活步骤(苹果7plus卡贴机怎么样)

  • 金正电视怎么连接手机(金正电视怎么连接苹果手机投屏)

    金正电视怎么连接手机(金正电视怎么连接苹果手机投屏)

  • 苹果手表蜂窝版需要插卡吗(苹果手表蜂窝版和gps款区别)

    苹果手表蜂窝版需要插卡吗(苹果手表蜂窝版和gps款区别)

  • novita是什么品牌(novoo是什么牌子)

    novita是什么品牌(novoo是什么牌子)

  • qq空间进不去什么情况(qq空间进不去是不是被删了)

    qq空间进不去什么情况(qq空间进不去是不是被删了)

  • 开电脑店几年搞笑客户合集2(开电脑店几年搞活动好吗)

    开电脑店几年搞笑客户合集2(开电脑店几年搞活动好吗)

  • 2020年委托加工的税率是多少
  • 电子税务局怎么删除办税员
  • 食品发票可以报销餐费吗
  • 金蝶kis标准版自定义报表功能
  • 银行存款日记账电子表格模板
  • 工伤退费是什么意思
  • 机械设备关税税率多少
  • 合并报表投资收益为什么要抵消
  • 用友t3固定资产计提折旧后没有凭证
  • 购买电脑的方案
  • 暂估入库的材料需要做T型账户嘛?
  • 发票已经开但是没有收到发票怎么做
  • 个人房产税怎么计算
  • 增值税发票专票有效期
  • 10万元以下免征教育费附加
  • 小微企业享受优惠
  • 新公司领取营业执照后的流程
  • 印花税如何进行税种认定
  • 物业公司代收水费亏损谁承担
  • 对外投资公司经营范围
  • 发票一定要开完了才能领取吗?
  • 消费税在哪个环节征税
  • 期间费用核算内容不应该包括
  • 支付版权费用怎么入账
  • bios里硬盘是哪个
  • 什么叫盘活存量股票
  • 预借差旅费报销会计分录
  • 让记事本文件自动删除
  • 进项税和销项税怎么理解
  • 为什么windows10关机后自动开机
  • 佣金代扣代缴增值税需要缴纳附加税吗
  • 新公司成立的前期准备工作计划
  • 应交增值税的会计科目怎么做
  • html 调用扫码
  • Windows11报sill idealTree buildDeps安装慢或者卡顿解决方案
  • 企业如何做账报税流程
  • 资产总额怎么计算公式
  • 2021前端热门技术解读
  • springboot aop切面
  • ajax获取php数据
  • 基于thinkphp开发的框架
  • 个人所得税纳税记录怎么查询
  • 小微企业增值税免税政策2023年
  • 资产负债表和现金流量表之间的勾稽关系
  • mongodb的坑
  • 有效税额可以更改吗
  • 社保次月几号生效
  • access字符型数据
  • 增量留底退税额计算
  • 厂房维修费是制造费用还是管理费用
  • 第一次建账要填期初余额吗
  • 什么是财产行为税举例
  • 契税应该计入税金及附加吗
  • 海关进口增值税专用缴款书在哪里打印
  • 外贸企业留抵退税申请表怎么填
  • 关于消费税的会计处理
  • 投资收益的账务怎么处理
  • 建筑企业案例
  • sqlserver数据库合并方法
  • windows更新9%
  • debian系统教程
  • u盘安装win8.1系统教程
  • 预览版win10
  • linux系统中touch
  • centos搭建lamp环境
  • ubuntu 14.04.6
  • slee401.exe - slee401是什么进程 有什么用
  • 电脑自带win8是装win7还是win10
  • linux使用ssh远程连接服务器
  • cocos2dx lua android glsurfaceview 截图
  • unity ondestroy
  • 我的第二个姐姐用英语怎么说
  • 文本框几种常用属性
  • unity2.5d游戏地图处理
  • Node.js中的construct
  • nodejs实战
  • 技术总结2000字
  • 安卓 centos
  • jquery弹出页面窗口
  • 贵阳网上办税服务厅
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设