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

  • 华为p40自带耳机吗(华为p40有耳机)

    华为p40自带耳机吗(华为p40有耳机)

  • wps怎么查找重复内容(wps怎么查找重复部分)

    wps怎么查找重复内容(wps怎么查找重复部分)

  • C盘中esupport是什么文件夹(c盘esupport文件可以删除吗)

    C盘中esupport是什么文件夹(c盘esupport文件可以删除吗)

  • 淘宝与天猫的区别在哪里(淘宝和天猫的区别?)

    淘宝与天猫的区别在哪里(淘宝和天猫的区别?)

  • 老年机呼叫转移在哪里(老年机呼叫转移怎么关闭)

    老年机呼叫转移在哪里(老年机呼叫转移怎么关闭)

  • 微信按日期怎么查与谁聊天(微信怎么选择日期)

    微信按日期怎么查与谁聊天(微信怎么选择日期)

  • 手机插口有哪几种(手机插口有哪几类)

    手机插口有哪几种(手机插口有哪几类)

  • 华为左上角怎么有个HD(华为左上角怎么显示运营商)

    华为左上角怎么有个HD(华为左上角怎么显示运营商)

  • etc充电线是什么接口(etc专用充电器线)

    etc充电线是什么接口(etc专用充电器线)

  • 2600和3600差多少(3600和2600x的差别)

    2600和3600差多少(3600和2600x的差别)

  • 投屏怎么倍速(投屏怎么倍速腾讯)

    投屏怎么倍速(投屏怎么倍速腾讯)

  • 小米手机相机为什么突然变成黑色的了(小米手机相机为什么闪退)

    小米手机相机为什么突然变成黑色的了(小米手机相机为什么闪退)

  • 华为手机的本地音乐在哪里(华为手机的本地视频在哪个文件夹)

    华为手机的本地音乐在哪里(华为手机的本地视频在哪个文件夹)

  • 苹果x实况照片出现叹号(苹果x实况照片怎么变视频教程)

    苹果x实况照片出现叹号(苹果x实况照片怎么变视频教程)

  • 主板性能主要看什么(主板性能主要看什么芯片)

    主板性能主要看什么(主板性能主要看什么芯片)

  • 为什么手机连接蓝牙耳机后没有媒体音频(为什么手机连接wifi老是自动断开)

    为什么手机连接蓝牙耳机后没有媒体音频(为什么手机连接wifi老是自动断开)

  • 拍照打印算复印件吗(拍照打印算复印嘛)

    拍照打印算复印件吗(拍照打印算复印嘛)

  • 电脑怎么新建word文档(电脑怎么新建word文档没有鼠标)

    电脑怎么新建word文档(电脑怎么新建word文档没有鼠标)

  • 微信怎么扫码坐公交车(微信怎么扫码坐地铁成都)

    微信怎么扫码坐公交车(微信怎么扫码坐地铁成都)

  • 拼多多极速退款买家不退货怎么办(拼多多极速退款在哪里设置的)

    拼多多极速退款买家不退货怎么办(拼多多极速退款在哪里设置的)

  • hdfs中block默认保存几份(hdfs1.0 默认 block size大小是多少)

    hdfs中block默认保存几份(hdfs1.0 默认 block size大小是多少)

  • 充电线发烫是什么原因(充电线发烫是什么原)

    充电线发烫是什么原因(充电线发烫是什么原)

  • QQ音乐无法播放怎么办(宝马车载qq音乐无法播放)

    QQ音乐无法播放怎么办(宝马车载qq音乐无法播放)

  • 分享电脑BIOS的一些小常识应用(∧oc电脑bios)

    分享电脑BIOS的一些小常识应用(∧oc电脑bios)

  • Win7系统网络一直断断续续很卡怎么办?(win7系统网络一直转圈,什么都打不开)

    Win7系统网络一直断断续续很卡怎么办?(win7系统网络一直转圈,什么都打不开)

  • PHPCMS是前后端分离吗?(cms是前端还是后端)

    PHPCMS是前后端分离吗?(cms是前端还是后端)

  • 滞留票有什么影响
  • etc发票可以抵扣进项税吗
  • 技术服务收入属于劳务报酬所得吗
  • 暂估的应付账款无法开具发票在金蝶云星空怎么操作
  • 个人所得税申报退税多久到账
  • 应收票据贷方余额怎么办
  • 增值税需要结转到本年利润吗
  • 进出口代理公司哪家好
  • 出售股票公允价值变动在借方
  • 企业常见的股利政策
  • 取暖补贴国家标准
  • 通讯费可以个人承担吗
  • 跨年的管理费用怎么调到主营业务成本里
  • 两笔不同业务能做一个凭证吗
  • 上市公司个税手续流程
  • 简易计税项目可以差额征税吗
  • 劳务公司差额开票的方式有哪些
  • 如何网上认证发票流程
  • 税收分类编码选错了没事吧
  • 虚开进项税额转出会计分录
  • 红字发票信息表是销方还是购方开
  • 独生子女费属于什么费用
  • 企业职工教育经费
  • 个人股权转让印花税在哪里申报
  • 开票多一分钱怎么办
  • bios里硬盘是哪个
  • 哪些人可以享受二级医保
  • yolov5 c
  • php获取ip客户端ip地址
  • 销售使用过的机器设备如何缴纳增值税
  • phpstudy配置https
  • 汽车购置税计算公式
  • php身份证正则表达式
  • 工业企业制造费用占比
  • tcp/ip协议含义
  • 作为大学生你能为国家安全贡献哪些力量论文
  • 个税计税周期 一年
  • 销售成本销售收入的关系
  • 公司转让注册海外公司
  • dedecms官网
  • 中小企业估值
  • 无形资产会产生递延所得税吗
  • 股份支付属于应付职工薪酬吗?
  • 支付航天信息服务费未收到发票怎么处理
  • 利息收入管理办法
  • 城市维护建设税怎么算
  • 增值税预缴的计税依据
  • 融资租赁的会计处理方法举例子
  • 损益类科目调整到未分配利润分录
  • 预存返现活动规则
  • 工会经费如何申请返还
  • 广告费和广告发布费什么区别
  • 代扣代缴完税凭证抵扣期限
  • 购车的费用包括哪些费用
  • 会计一般用什么软件
  • 新手会计做账怎么做账
  • centos安装类型选择
  • Win10系统安装包
  • 如何配置linux系统
  • win7系统怎样
  • fs是什么文件
  • notify.exe - notify是什么进程 有什么用
  • win10总连不上网
  • opengl导入obj
  • vs opengl配置
  • javascript 数组操作
  • activity lunchmode详解
  • javascript教程
  • 力所能及之处,定当竭尽所能
  • java script教程
  • 怎么用git上传项目
  • python最优化
  • jquery操作表单
  • python中的堆和栈
  • javascript Slip.js实现整屏滑动的手机网页
  • python中的字符串的英文
  • 双色球兑奖方式选法
  • 业财税一体化所指的业财税包括下列哪几项
  • 餐饮专票可以抵扣吗
  • 转让专利权取得的所得属于财产转让所得吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设