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

  • reno7后面会发光吗(opporeno5后壳发光)

    reno7后面会发光吗(opporeno5后壳发光)

  • 朋友圈可以发gif动图吗(朋友圈可以发gift吗)

    朋友圈可以发gif动图吗(朋友圈可以发gift吗)

  • 荣耀x10设置息屏显示时间的步骤是什么(荣耀x10怎么设置灭屏时间)

    荣耀x10设置息屏显示时间的步骤是什么(荣耀x10怎么设置灭屏时间)

  • 微信转给别人的钱怎么撤回(微信转给别人的钱还能要回来吗)

    微信转给别人的钱怎么撤回(微信转给别人的钱还能要回来吗)

  • 手机防窥膜对眼睛有没有伤害(手机防窥膜危害)

    手机防窥膜对眼睛有没有伤害(手机防窥膜危害)

  • 表格不能上下移动(表格不能上下移怎么设置)

    表格不能上下移动(表格不能上下移怎么设置)

  • 抖音gif表情包怎么保存(抖音gif表情包怎么添加)

    抖音gif表情包怎么保存(抖音gif表情包怎么添加)

  • adobe视频剪辑软件叫什么(adobe视频剪辑软件叫什么Ai)

    adobe视频剪辑软件叫什么(adobe视频剪辑软件叫什么Ai)

  • 表格不能筛选的原因(excle表格筛选)

    表格不能筛选的原因(excle表格筛选)

  • switch有充电标志充不进电(switch充电标志在哪里)

    switch有充电标志充不进电(switch充电标志在哪里)

  • iphone可以连pencil吗(Iphone可以连接三星耳机吗)

    iphone可以连pencil吗(Iphone可以连接三星耳机吗)

  • x399主板配什么cpu(x570主板配什么机箱)

    x399主板配什么cpu(x570主板配什么机箱)

  • 拼多多没发货可以退款吗(拼多多没发货可以申请退款吗)

    拼多多没发货可以退款吗(拼多多没发货可以申请退款吗)

  • ie系列浏览器有啥(ie系列浏览器有哪些)

    ie系列浏览器有啥(ie系列浏览器有哪些)

  • 天河二号计算机是巨型机吗(天河二号计算机研发成功时间)

    天河二号计算机是巨型机吗(天河二号计算机研发成功时间)

  • 笔记本电脑乘号是哪个键(笔记本电脑乘号是哪个键子)

    笔记本电脑乘号是哪个键(笔记本电脑乘号是哪个键子)

  • 亲情关怀可以卸载吗(亲情关怀卸载了对方还能远程协助操作吗)

    亲情关怀可以卸载吗(亲情关怀卸载了对方还能远程协助操作吗)

  • 荣耀9x升降摄像头怎么打开(荣耀9x升降摄像头卡住了)

    荣耀9x升降摄像头怎么打开(荣耀9x升降摄像头卡住了)

  • 快手极速版怎么暂停视频(快手极速版怎么填写邀请码)

    快手极速版怎么暂停视频(快手极速版怎么填写邀请码)

  • 如何使用打印机缩印(如何使用打印机复印)

    如何使用打印机缩印(如何使用打印机复印)

  • nfc有必要一直开着吗(nfc用不用一直开着)

    nfc有必要一直开着吗(nfc用不用一直开着)

  • 荣耀9x支持快充吗(荣耀50支持多少w快充)

    荣耀9x支持快充吗(荣耀50支持多少w快充)

  • 小爱音响无法连接网络(小爱音响无法连接5gWIFI怎么处理)

    小爱音响无法连接网络(小爱音响无法连接5gWIFI怎么处理)

  • 视频发送失败什么原因(视频发送不了如何解决)

    视频发送失败什么原因(视频发送不了如何解决)

  • 一般纳税人开普票税率是3%还是13%
  • 微店企业和个人的区别
  • 购入原材料开出商业承兑汇票会计分录
  • 个人社保缴费多少钱一个月
  • 房产代理经纪人
  • 出售本月转入处置的固定资产应交税费
  • 商业零售企业实行增值税后购进商品业务的账务处理
  • 小规模增值税做那个费用科目
  • 卖二手车发票如何做账?
  • 国外客户给你寄来礼物怎么感谢
  • 公司注销后会计凭证保管年限
  • 提取备用金现金流量
  • 国有资产无偿划转管理办法
  • 哪些费用可以计入待摊费用
  • 注册商标成功的标志图片
  • 超过180天增票不抵扣财务还可以入账吗?
  • 承兑汇票银行背书
  • 纳税人为ETC卡充值取得财政票据进项税额抵扣问题
  • 购进旅客运输服务为什么不能抵扣进项税额
  • 分期付款融资账务处理
  • 进口采购交的增值税
  • 公司名下商品房交易开具发票
  • 土地增值税清算报告
  • win10如何查看显卡版本
  • 设备维保费计算标准
  • 评标专家评审费应该谁来付
  • 工资薪金怎么申报9
  • 使用时间
  • ’sass_binary_site‘ is not a valid npm option问题的产生原因及解决办法
  • windows资源管理器未响应怎么办
  • 帮忙介绍业务
  • 笔记本cpu排行天梯
  • 期间费用为什么叫期间费用
  • explorer.exe进程文件
  • php 数组定义
  • 哪些合同不属于担保合同
  • kaggle能赚钱吗
  • segment anything model github
  • vant weapp官方文档
  • tcpdump 监听指定端口
  • saas web
  • 微信收款会计入个人所得税吗
  • 债券发行费用计入科目
  • 个税APP怎么填报扣税最少
  • 车间购买劳保费用会计分录
  • 采用账龄分析法计提坏账准备时,收到
  • 税盘进项税额怎么做
  • 办理外经证后缴税怎么交
  • 公路工程投标保证金
  • 公司员工出差住酒店费用明细有问题怎么办
  • 无形资产的项目有哪些
  • 借用别的公司资质的协议范本
  • Windows Server 2008与2012建立林信任详细步骤
  • centos安装ntfs 3g
  • win7开机taskeng
  • ubuntu修改ip地址方法
  • Red Hat Enterprise Linux AS4( 企业版4.0下载)
  • win8老是自动安装软件
  • 进程cmd.exe
  • linux电子邮件
  • SCP 方便的Linux文件互传
  • win10更新后qq打不开
  • 基于stm32的100个毕业设计
  • cocos2d android 游戏开发学习——CCAction(一)
  • 了不起的狐狸爸爸
  • 如何检测ip地址是否被占用
  • python自动生成
  • nodejs实现登录
  • js 实现一个new
  • python中子类继承父类的静态方法吗
  • js cookie用法
  • python中的range和arange
  • python dict.get()和dict['key']的区别详解
  • python中scipy.stats
  • 安徽省地方税务局公告2016年第1号
  • 如何给局长送点礼品
  • 法规处职责要点和底线清单
  • 山西土地增值税清算
  • 什么发票可以抵税
  • 重庆纳税申报流程
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设