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

  • ipadpro2021怎么退出应用(ipadpro如何退回上一步)

    ipadpro2021怎么退出应用(ipadpro如何退回上一步)

  • 京东如何摇一摇(京东如何摇一摇?)

    京东如何摇一摇(京东如何摇一摇?)

  • 麦当劳怎么预约第二天早餐(麦当劳怎么预约生日派对)

    麦当劳怎么预约第二天早餐(麦当劳怎么预约生日派对)

  • vivos12相机声音在哪里关闭(vivos12相机声音怎么关闭)

    vivos12相机声音在哪里关闭(vivos12相机声音怎么关闭)

  • 手机丢了照片没有备份(手机丢了照片没有备份还能找回来吗)

    手机丢了照片没有备份(手机丢了照片没有备份还能找回来吗)

  • 电脑换壁纸在哪里设置(电脑哪里更换壁纸)

    电脑换壁纸在哪里设置(电脑哪里更换壁纸)

  • 抖音怎么清除喜欢里面的视频(抖音怎么清除喜欢作品)

    抖音怎么清除喜欢里面的视频(抖音怎么清除喜欢作品)

  • 手机视频怎么镜像翻转?(手机视频怎么镜像处理)

    手机视频怎么镜像翻转?(手机视频怎么镜像处理)

  • 480p分辨率是高清还是标清(分辨率480和1080)

    480p分辨率是高清还是标清(分辨率480和1080)

  • 华为nova7pro卡槽在哪里(华为novapro7pro卡槽)

    华为nova7pro卡槽在哪里(华为novapro7pro卡槽)

  • 华为手表有定位追踪功能吗(华为手表有定位功能 怎么打开)

    华为手表有定位追踪功能吗(华为手表有定位功能 怎么打开)

  • 怎么分享微信聊天记录(怎么分享微信聊天记录长图)

    怎么分享微信聊天记录(怎么分享微信聊天记录长图)

  • 一键换机会清除旧手机数据吗(一键换机完成后可删除吗)

    一键换机会清除旧手机数据吗(一键换机完成后可删除吗)

  • 内存条优先插哪个槽(电脑内存条优先插哪个插槽)

    内存条优先插哪个槽(电脑内存条优先插哪个插槽)

  • iphone8频繁死机原因(苹果8最近老是死机)

    iphone8频繁死机原因(苹果8最近老是死机)

  • 京东里什么叫待收货(京东的待发货在哪里)

    京东里什么叫待收货(京东的待发货在哪里)

  • 腾讯乘车卡余额怎么退(腾讯乘车卡打折吗)

    腾讯乘车卡余额怎么退(腾讯乘车卡打折吗)

  • iqoopro怎么备份数据(iqoo手机怎么备份所有数据)

    iqoopro怎么备份数据(iqoo手机怎么备份所有数据)

  • 快手删掉的视频怎么找(快手删掉的视频怎么找回来)

    快手删掉的视频怎么找(快手删掉的视频怎么找回来)

  • 荣耀20pro参数详细参数(荣耀20pro参数详情及价格)

    荣耀20pro参数详细参数(荣耀20pro参数详情及价格)

  • 堆栈的工作方式是什么(堆栈的工作方式称为)

    堆栈的工作方式是什么(堆栈的工作方式称为)

  • 如何从微信号查出对方手机号(如何从微信号查到手机号)

    如何从微信号查出对方手机号(如何从微信号查到手机号)

  • 苹果电量的提示音咋开(苹果电量的提示怎么设置)

    苹果电量的提示音咋开(苹果电量的提示怎么设置)

  • 苹果xr怎么看是不是国行(苹果xr怎么看是不是双卡双待)

    苹果xr怎么看是不是国行(苹果xr怎么看是不是双卡双待)

  • 无线网怎样连接电视机(无线网怎样连接电脑上)

    无线网怎样连接电视机(无线网怎样连接电脑上)

  • 应交税费的借贷方向
  • 中国的税收制度是什么
  • 劳务工报价单
  • 小规模企业免税怎么做账
  • 残保金退回属于什么业务
  • 附加税减征额怎么做分录
  • 财务报表没有申报表
  • 补交以前年度增值税的科目处理
  • 企业固定资产没提折旧怎么办
  • 质量问题用实物形容
  • 企业如何认定
  • 营改增后预收工程款会计处理是怎样的?
  • 发票最大限额999元,超过了怎么办
  • 房地产企业自行开发的房地产项目
  • 金税三期能查几年前的发票
  • 其他应收款在资产负债表中是负数
  • 固定资产可以一次计入费用吗
  • 职工福利进项税可以抵扣吗
  • 企业所得税业务招待费扣除比例
  • 票据再质押
  • 收入可以用收据入账吗
  • 旅行社开的发票是否都要差额征税
  • 畅捷通t3怎么增加新的会计年度
  • 小规模增值税免税额
  • 装修的增值税
  • 个人从价计征房产税
  • 固定资产计算折旧时用扣除减值吗
  • win11任务管理器在哪里打开
  • 异地工程预缴增值税怎么计算
  • 预付款挂账什么意思
  • 电脑上一键复制是哪个键
  • 苹果系统中怎么删除软件
  • 定额发票收入怎么样确定
  • 怎么查发票的真假鉴定
  • 生育津贴差额账务处理
  • php curl命令详解
  • php生成图片验证怎么弄
  • 会计常用单据样本大全
  • 资产减值损失和资产减值准备
  • 公司购进软件的账务处理
  • mysqli
  • python迭代器有什么用
  • 个体工商户怎么变更法人
  • 长期待摊费用借方负数什么意思
  • 小企业销售折让与销售退回发生时如何处理
  • shell取命令执行结果
  • 一次性扣除固定资产出售处理
  • 股东权益合计等于净资产吗
  • 工会经费到底是什么
  • 合并报表时存货公允与账面的差额
  • 植物售卖
  • 去年的车辆保险今年才开怎么做分录
  • 营改增后营业费用科目还有吗
  • 装饰公司工地
  • 政府无偿划拨土地如何摊销
  • redis 和 mysql 的数据不一致怎么办
  • win10更新dx
  • linux怎么修改
  • win7电脑开机声音怎么改
  • xp系统磁盘检查进不去
  • 无线网络连接不上显示无ip分配
  • 时间服务器ip 端口
  • win7系统开机后桌面黑屏
  • 黑客怎样入侵别人手机
  • win8如何隐藏任务栏
  • win7怎么删除wifi已连接过的网络
  • win8.1备份系统还原
  • [置顶]星陨计划
  • JavaScript中的方法名不区分大小写
  • glsl编译
  • bat脚本如何运行
  • js限制输入字符长度
  • nodejs cgi
  • python 性能
  • Javascript字符串对象函数
  • 税务局投诉怎么投诉
  • 大连电子税务局app下载
  • 购销合同印花税最新政策2023
  • 我各位一个关于网上申报增值税所得税的申报流
  • 收到假发票,被公司辞退
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设