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

  • windows 11系统

    windows 11系统

  • 华为p30的处理器是什么(华为p30的处理器相当于高通骁龙的什么处理器)

    华为p30的处理器是什么(华为p30的处理器相当于高通骁龙的什么处理器)

  • 微信如何发电子版照片(微信如何发电子稿给老师)

    微信如何发电子版照片(微信如何发电子稿给老师)

  • 闲鱼发东西别人看不到(闲鱼发东西别人知道吗)

    闲鱼发东西别人看不到(闲鱼发东西别人知道吗)

  • 苹果手机查找不可用,无法连接服务器(苹果手机查找不到wifi是怎么回事)

    苹果手机查找不可用,无法连接服务器(苹果手机查找不到wifi是怎么回事)

  • 拼多多能开发票吗

    拼多多能开发票吗

  • 怎样下载抖音里面的视频(怎样下载抖音的视频)

    怎样下载抖音里面的视频(怎样下载抖音的视频)

  • 抖音第三方绑定有什么用(抖音第三方绑定微信,微信账号已绑定其他账号)

    抖音第三方绑定有什么用(抖音第三方绑定微信,微信账号已绑定其他账号)

  • hw050450c01对应哪款手机(hw05200c01)

    hw050450c01对应哪款手机(hw05200c01)

  • 朋友圈发完了还能编辑吗(朋友圈发完了还能设置某人,不让看我朋友圈么)

    朋友圈发完了还能编辑吗(朋友圈发完了还能设置某人,不让看我朋友圈么)

  • 机器语言是面向什么的(机器语言是面向什么的语言)

    机器语言是面向什么的(机器语言是面向什么的语言)

  • 华为手环3系列和4的区别(华为手环3pro发布)

    华为手环3系列和4的区别(华为手环3pro发布)

  • 华为jkmtl00型号是啥(华为jkmtl00型号手机照片删除后找回)

    华为jkmtl00型号是啥(华为jkmtl00型号手机照片删除后找回)

  • 手机为什么插上耳机还外放(手机为什么插上耳机有声音,拔掉就没有声音了)

    手机为什么插上耳机还外放(手机为什么插上耳机有声音,拔掉就没有声音了)

  • 快手怎么调浏览模式(快手浏览页面怎么设置)

    快手怎么调浏览模式(快手浏览页面怎么设置)

  • ios12怎么关闭截图分享(iphone12关闭截图)

    ios12怎么关闭截图分享(iphone12关闭截图)

  • 怎么把爱奇艺视频转换成mp4格式(怎么把爱奇艺视频保存到百度网盘)

    怎么把爱奇艺视频转换成mp4格式(怎么把爱奇艺视频保存到百度网盘)

  • 读书郎平板电脑怎么下载软件(读书郎平板电脑忘记密码怎么办)

    读书郎平板电脑怎么下载软件(读书郎平板电脑忘记密码怎么办)

  • 荣耀20怎么没有耳机孔(荣耀20怎么没有隐私空间)

    荣耀20怎么没有耳机孔(荣耀20怎么没有隐私空间)

  • coreldraw9怎样设计名片(coreldraw怎么设置颜色)

    coreldraw9怎样设计名片(coreldraw怎么设置颜色)

  • 微信没法收红包怎么办(微信没法收红包怎么办已实名认证)

    微信没法收红包怎么办(微信没法收红包怎么办已实名认证)

  • 直连路由、静态路由、动态路由(直连路由,静态路由)

    直连路由、静态路由、动态路由(直连路由,静态路由)

  • 3901100090的暂定税率
  • 临时用工的会计分录
  • 跨月冲红的发票怎么做会计分录
  • 专款专用需要缴纳企业所得税吗?
  • 新公司第一年要做亏
  • 合同负债里面含增值税吗
  • 个税申报人员信息采集表模板
  • 计提工资需要纳税调整吗
  • 发生销售折让可以不开具
  • 房租怎么抵扣个税计算方法
  • 公益机构可以收费吗
  • 营业外收入在资产负债表怎么填
  • 固定资产暂估折旧能税前扣除吗
  • 银行承兑汇票贴现怎么算
  • 国税一个月没报税罚款多少
  • 商品房买卖合同预售和商品房买卖合同有什么区别
  • 个人消费索要公司的钱
  • 公司增资需要什么
  • 冲失业保险分录怎么做
  • 营业收入与主营业务收入的区别与联系
  • 委托采购是什么意思
  • win11怎么改名
  • 印花税的计税依据是销项和进项的金额
  • 支付商业保险费属于什么现金流量项目
  • 年折旧率怎么计算折旧几年
  • 小规模纳税人申报
  • 个体户税务申报需要什么资料和手续
  • 一次性开票分期确认收入如何纳税申报
  • 冲销以前年度多计提的工资资产负债表怎么平
  • PHP:pg_lo_import()的用法_PostgreSQL函数
  • 华硕路由器登录地址
  • 年终双薪是底薪吗
  • 科技财政支出的意义
  • 塞里雅兰瀑布图片高清
  • 企业应交税费科目
  • 采用定额法计算产品成本,其程序如何?
  • 没有上报汇总就申报了
  • 卡拉公路
  • typescript完全解读
  • javascript百炼成仙免费
  • 2023 年值得关注的 9 个 Web3 发展趋势
  • 员工不小心重复报销了
  • php clob
  • 申请开具电子发票
  • 免抵退税额怎么计算城建税
  • 做账计提是什么意思
  • mongodb cond
  • 织梦开发教程
  • 暂估入库收到发票后摘要
  • 公司送礼计入什么会计科目
  • 应付职工薪酬的二级科目都有哪些
  • 积分换物品是真的吗
  • 公司基建维修承诺书
  • 固定资产增值税发票如何入账
  • 主营业务成本暂估怎么算
  • 企业外币折算的方法包括
  • 售楼部装修费计入什么科目
  • win7系统中如何禁用和启用网络
  • win10显示win8
  • Centos系统里screen命令如何使用?Centos系统里screen命令的使用方法
  • centos5安装步骤
  • linux系统要求配置
  • 在mac中该如何共享文件夹
  • incorrect email format, please re-enter.
  • Win7防火墙怎么设置
  • win7如何关闭ie浏览器
  • jquery showdialog
  • 个人简历
  • cocos2dx 3.2 Http网络连接,curl 库的介绍
  • using kernel
  • shell编程之循环语句for与while
  • Apache服务器的安全缺陷
  • unity用鼠标控制物体移动
  • 编写shell脚本,批量建立用户
  • 安卓大作业小游戏五子棋
  • 请问在javascript程序中
  • 个人房屋出租给公司怎么开发票
  • 彩票中500万自己能得多少
  • 海南省地方税务局关于土地增值税清算有关问题的通知
  • 工本费每月都扣?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设