使用上传组件上传文件到 OSS

使用上传组件,上传文件到自己的 OSS 中,配置链路

准备资料

OSS 关闭阻止公共访问 OSS控制台

image

OSS 跨域配置

imageimage

来源配置:https://mobinext.console.aliyun.comhttps://runtime.mobiapp.cloud

允许 Headers:*

暴露 Headers:ETag

RAM 角色 角色控制

image

  1. 配置角色

  2. ARN 信息

  3. 角色需要授权的 OSS 权限 AliyunOSSFullAccess

RAM 子账号

image

  1. 子账号需要授权 AliyunOSSFullAccess

image

  1. 创建或者使用已有的子账号的 AK SK

集成配置

1. 创建 使用阿里云 OSS 集成

2. 使用文件上传组件

image

  1. 上传组件

  2. 动作:选择上传至阿里云 OSS

  3. OSS 凭证操作:选择创建的 oss_link 集成

  4. 配置最大可上传的文件大小

  5. 操作类型:获取选择表单上传配置(最大只是 5G)

  6. 目录:配置提交到 OSS 的文件目录,注意:这里不能以 / 开头,上图配置的目录为:{{mobi.appInfo.appId}}/{{mobi.currentUser.name}}表达的概念是,上传到当前应用目录下的某个用户的目录下

  7. 访问权限:继承 Bucket,注意:这里的选择是默认的,可以根据您需求进行配置

image

  1. 选择 oss_link 回调

  2. 配置上传成功后的事件

  3. 配置文件上传之后的访问地址给指定的变量,{{up_file.action}}/{{up_file.extraData.key}}这里采用拼串的方式组合出文件的下载地址

配置过程中遇到的问题总结

文件上传后访问提示 AccessDenied

image

解决方案

需要在 OSS 中关闭阻止公共访问

获取上传策略失败

be95f1521836643b85a94345848a371d

解决方案

检查 OSS 的跨域配置,需要包含的链接,自己的域名地址,魔笔的测试链接( https://runtime.mobiapp.cloud ),魔笔的设计时地址( https://mobinext.console.aliyun.com )

上传错误

image

解决方案

image

  1. 检查 Bucket 是否配置正确

分片上传失败

45b06fc58f5e27c9536438560d44291b

1. 解决方案

image

  1. 暴露 Headers 是否配置 ETag

2. 解决方案

检查集成是否有配置 ARN 对应字段搜索本文档:ARN 信息

image

上传失败 InvalidObjectName 400

image

解决方案

image

  1. 目录配置不能存在前缀 /正确示例:image