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

  • 网店推广的方式多种多样(网店怎么运营和推广)

    网店推广的方式多种多样(网店怎么运营和推广)

  • b站怎么删除自己的投稿(b站怎么删除自己的动态)

    b站怎么删除自己的投稿(b站怎么删除自己的动态)

  • 没开通花呗,可以用花呗红包吗(没开通花呗可以开通借呗吗)

    没开通花呗,可以用花呗红包吗(没开通花呗可以开通借呗吗)

  • 钉钉文件怎样发送到QQ上(钉钉文件怎样发送给微信好友)

    钉钉文件怎样发送到QQ上(钉钉文件怎样发送给微信好友)

  • 显示器上显示dvi(显示器上显示dvi是什么意思)

    显示器上显示dvi(显示器上显示dvi是什么意思)

  • 全站仪的作用(全站仪键盘的作用)

    全站仪的作用(全站仪键盘的作用)

  • apple pencil连接上写不出来(Apple Pencil连接上显示耳机)

    apple pencil连接上写不出来(Apple Pencil连接上显示耳机)

  • 拼多多聚宝盆在哪里打开(拼多多里聚宝盆)

    拼多多聚宝盆在哪里打开(拼多多里聚宝盆)

  • 笔记本连不上wi-fi怎么回事(笔记本连不上wifi显示无法连接到这个网络)

    笔记本连不上wi-fi怎么回事(笔记本连不上wifi显示无法连接到这个网络)

  • 固态硬盘保修期多久(固态硬盘保修期内损坏)

    固态硬盘保修期多久(固态硬盘保修期内损坏)

  • oppor17长宽高多少cm(oppor17的长度)

    oppor17长宽高多少cm(oppor17的长度)

  • 快手看不到别人的播放量怎么回事(快手看不到别人在线状态)

    快手看不到别人的播放量怎么回事(快手看不到别人在线状态)

  • wps艺术字怎么拉伸放大(wps艺术字拉伸字体)

    wps艺术字怎么拉伸放大(wps艺术字拉伸字体)

  • 华为微信图标有个盾牌(华为微信图标有个蓝色对勾)

    华为微信图标有个盾牌(华为微信图标有个蓝色对勾)

  • qq号就是邮箱号吗(如何获得邮箱账号)

    qq号就是邮箱号吗(如何获得邮箱账号)

  • ipad wifi密码正确但是提示密码错误(ipadwifi密码正确但是提示密码错误,手机却能连上)

    ipad wifi密码正确但是提示密码错误(ipadwifi密码正确但是提示密码错误,手机却能连上)

  • 手机版本升级对手机有影响吗(手机版本升级对手机有没有好处)

    手机版本升级对手机有影响吗(手机版本升级对手机有没有好处)

  • word2019怎么设置目录(word2019怎么设置三级标题)

    word2019怎么设置目录(word2019怎么设置三级标题)

  • 软件缓存是什么意思,可以删除吗(手机软件缓存是什么)

    软件缓存是什么意思,可以删除吗(手机软件缓存是什么)

  • 系统蓝屏怎么修复(系统蓝屏原因分析)

    系统蓝屏怎么修复(系统蓝屏原因分析)

  • 红米k20pro怎样设置4G网(红米k20pro怎样设置扬声器)

    红米k20pro怎样设置4G网(红米k20pro怎样设置扬声器)

  • oppor9s有悬浮球功能吗(oppor9手机悬浮球在哪里设置?)

    oppor9s有悬浮球功能吗(oppor9手机悬浮球在哪里设置?)

  • iphone贴卡机是什么(苹果手机贴卡机好吗)

    iphone贴卡机是什么(苹果手机贴卡机好吗)

  • 面对面建群在哪(面对面建群在哪里找)

    面对面建群在哪(面对面建群在哪里找)

  • 隐藏资源管理器中的文件夹选项(隐藏资源管理器窗口)

    隐藏资源管理器中的文件夹选项(隐藏资源管理器窗口)

  • 一般纳税人收到普票如何入账
  • 公关支出是什么意思
  • 行政事业性收据发票记帐
  • 2023年印花税如何计算
  • 企业如何代员工缴社保
  • 股权转让怎么申报
  • 小规模的开专票怎么征税
  • 银行转账记录能保存多久
  • 季度所得税申报表里的营业收入是什么?
  • 外经证错了已经交了税怎么办
  • 小规模收的专票怎么做账
  • 个贷系统平账专户A户
  • 融资性售后回租是什么服务
  • 减税降费对企业的影响案例
  • 广告业务增值税税率
  • 对公账户的钱能转到私人账户吗
  • 挂其他应付款的会计分录
  • 企业自建固定资产
  • 作废的现金支票怎么处理
  • 上月营业外收入少报入了怎么办
  • 普通年金的定义
  • 销项负数发票的抵扣联
  • 外国专家工资个税
  • 给员工购消费卡怎么做账
  • 物业管理公司如何纳税
  • 330税盘费是什么意思?
  • 工程款增值税怎么算
  • 开发企业售楼处工作内容
  • 企业微信收款怎么提现
  • 预收购货款的会计分录
  • 即征即退的增值税计入其他收益吗
  • 财务预算业务制度有哪些
  • 如何开启系统自带杀毒软件
  • wordpress相关文章
  • 如何用php制作表格
  • 自己买材料自己装修
  • php测验
  • 运输费计税吗
  • opencv讲解
  • php判断字符串是否包含字母
  • 应收账款保理会计处理相关会计准则
  • 应付账款转入营业外收入的证明
  • 没有发票的费用汇算清缴的时候怎么调出来
  • 奖金没有做到工资里怎么入账
  • mongodb在windows上的安装
  • python copyto
  • 二手车交易规则最新
  • 无票收入交不交增值税
  • sql server数据表
  • 一般纳税人销售旧货税率
  • 小微企业免税销售额怎么填
  • 支票存根联丢失可以用回单代替么
  • 以银行存款支付固定资产修理费
  • 单位内部食堂怎么举报
  • 在建工程的人工费会计分录
  • 直接成本包括哪些
  • sql server 存储过程 超时
  • mysql多表查询方式
  • Linux下MySQL 5.5/5.6的修改字符集编码为UTF8的方法
  • window修复系统
  • mac快捷键使用
  • linux cp用法
  • avgcc32.exe进程是什么文件产生的 avgcc32进程信息查询
  • windows安装软件需要管理员权限
  • win7cpu虚拟化怎么看
  • win10预览版退回正式版
  • linux系统崩溃了怎么办
  • media.codec是什么
  • 获取windows的最新信息
  • win8操作系统
  • js函数详解
  • 简单 粗暴
  • 学习计划表模板
  • php操作dom
  • android studio ndk编程 配置
  • js如何截取中文字符
  • js发送请求的几种方式
  • jquery click重复执行
  • 你家预收租金到哪里去了
  • 高新区地税办税服务厅
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设