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

  • 发出的抖音怎么删除(发出的抖音怎么删除掉)

    发出的抖音怎么删除(发出的抖音怎么删除掉)

  • airpods微信语音没声音(airpods微信语音别人听不见)

    airpods微信语音没声音(airpods微信语音别人听不见)

  • 微信里的健康码在哪里找(微信里的健康码没有了)

    微信里的健康码在哪里找(微信里的健康码没有了)

  • 什么是安装在计算机显示器的输入设备(什么是安装在计算机上的)

    什么是安装在计算机显示器的输入设备(什么是安装在计算机上的)

  • 抖音橱窗保证金能退吗(抖音橱窗保证金多久能退回来)

    抖音橱窗保证金能退吗(抖音橱窗保证金多久能退回来)

  • iphone7p有无线充电功能吗(苹果手机7p有无线充电功能没)

    iphone7p有无线充电功能吗(苹果手机7p有无线充电功能没)

  • 平板能下载钉钉吗(平板能下载钉钉吗怎么下载)

    平板能下载钉钉吗(平板能下载钉钉吗怎么下载)

  • 注销了的快手号能恢复吗(注销了的快手号还能找回吗)

    注销了的快手号能恢复吗(注销了的快手号还能找回吗)

  • 10gbps是几兆网速(10mbps是多少网速)

    10gbps是几兆网速(10mbps是多少网速)

  • opporeno3是全面屏吗(opporeno3pro怎么设置全面屏)

    opporeno3是全面屏吗(opporeno3pro怎么设置全面屏)

  • 爱奇艺在哪里设置高清(爱奇艺在哪里设置主设备)

    爱奇艺在哪里设置高清(爱奇艺在哪里设置主设备)

  • 安卓微信分身怎么弄(安卓微信分身怎么弄第二个微信)

    安卓微信分身怎么弄(安卓微信分身怎么弄第二个微信)

  • 手机可以开通网上银行吗(手机可以开通网银怎么开通)

    手机可以开通网上银行吗(手机可以开通网银怎么开通)

  • 手机qq资料怎样不显示性别(怎样把手机qq的资料转到电脑qq上)

    手机qq资料怎样不显示性别(怎样把手机qq的资料转到电脑qq上)

  • i音乐怎么收藏歌曲(i音乐收藏的歌在哪)

    i音乐怎么收藏歌曲(i音乐收藏的歌在哪)

  • 京东怎么删除自己的评价(京东怎么删除自己的评价记录)

    京东怎么删除自己的评价(京东怎么删除自己的评价记录)

  • shine是什么意思(英文shine是什么意思)

    shine是什么意思(英文shine是什么意思)

  • 荣耀9x怎么设置人脸识别(荣耀9x怎么设置底部三个键)

    荣耀9x怎么设置人脸识别(荣耀9x怎么设置底部三个键)

  • 苹果x怎么多窗口删除(苹果x手机多窗口同屏)

    苹果x怎么多窗口删除(苹果x手机多窗口同屏)

  • iphone xs怎么实现双卡(苹果xs教程)

    iphone xs怎么实现双卡(苹果xs教程)

  • 机皇是什么意思(机皇htc)

    机皇是什么意思(机皇htc)

  • 充电宝给手机充电慢(充电宝给手机充一晚上可以吗)

    充电宝给手机充电慢(充电宝给手机充一晚上可以吗)

  • 苹果xr语音助手在哪里(苹果xr语音助手怎么回事不能用)

    苹果xr语音助手在哪里(苹果xr语音助手怎么回事不能用)

  • bios设置电脑定时自动开机/关机的设置方法图文教程(bios设置定时重启)

    bios设置电脑定时自动开机/关机的设置方法图文教程(bios设置定时重启)

  • 超标准能按小规模纳税人标准纳税吗?
  • 原材料的采购成本包括运费吗
  • 零税率是指
  • 本年利润怎么结转分录
  • 地价计入房产原值公式
  • 资产负债表本月期末余额怎么填
  • 收回已冲销的坏账分录
  • 培训学校教具记在什么费用
  • 季度不超过9万
  • 小规模纳税人是个体户吗
  • 佣金收入者是什么意思
  • 出口转内销增值税报表怎么填
  • 设备发票怎么抵扣
  • 法院一直扣着我的钱不给可以起诉他吗
  • 生产成本明细科目是原材料的名称吗
  • 项目所在地怎么填
  • 2018年所得税表
  • 总资产周转率计算公式用不用乘100%
  • 月末计提税金数据从哪得来的
  • 发票与报税记录不一致
  • 没有发生关联交易需要关联申报吗?
  • 给员工购买口罩计入什么费用
  • 劳务公司差额征收税率是多少
  • 所得税季报营业外收入怎么填
  • 今年交去年的工会经费账务处理?
  • 附加税是销项税减去进项税
  • 全资的子公司
  • 一刀999是什么游戏
  • 企业生产过程中的一个安全问题必须
  • 企业奠基费用如何入账
  • 财务软件上线需注意什么
  • 如何回到一年前的方法
  • php讲解
  • php初学者常见问题和答案
  • manjaro linux安装教程
  • PHP:pg_fetch_row()的用法_PostgreSQL函数
  • 变更营业执照中心怎么改
  • 预收的购货款属于收入吗
  • vue移动端pc端适配方案
  • 基于个人同意处理个人信息的个人什么撤回其同意
  • 微信小程序详细教程
  • Vue3通透教程【二】更高效的构建工具—Vite
  • php实现的http请求封装示例
  • php获取ua
  • get_module_base
  • 纳税人在电子税务局收到优惠政策
  • 微信收款怎么做会计分录
  • 现金流量表季度期初现金余额怎么填
  • 月末半成品也需要结转生产成本
  • 经营证在哪里办
  • 开增值税专用发票的好处
  • 商业折扣影响销售成本吗
  • 主办会计的工作内容和职责
  • 企业所得税债务重组一般性税务处理
  • 会计账户与银行账户
  • 存货报废如何做账
  • 基本电费包含电量吗
  • 在建工程转长期待摊费用是什么意思
  • 发票报销是什么流程
  • 一般纳税人混凝土税负率
  • 商品储存的基本要求是什么?
  • 安装centos6.10
  • win7系统如何重新分区
  • vim显示中文乱码
  • 安装完xp系统直接黑屏怎么办
  • win81怎么取消开机密码
  • win10一直重置
  • 安装ghost win7
  • js类的实现
  • javascript教程
  • cocos2dx 3.3 quick lua 实现返回键退出程序
  • eclipse 不同工程中文乱码问题(可对文件以及工程单独设置)
  • 浅析我国国防现状
  • vue实现淘宝布局
  • 怎么屏蔽微信群消息,但是不退出此群
  • 车船税属于地方固定收入吗
  • 跨区迁移税务需要注销吗?
  • 雄安属于北京管吗
  • 办公电话怎么设置铃声
  • 纳税服务理念创新不足
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设