使用上传组件,上传文件到自己的 OSS 中,配置链路
准备资料
OSS 关闭阻止公共访问 OSS控制台
OSS 跨域配置
来源配置:https://mobinext.console.aliyun.com
https://runtime.mobiapp.cloud
允许 Headers:*
暴露 Headers:ETag
RAM 角色 角色控制
配置角色
ARN 信息
角色需要授权的 OSS 权限
AliyunOSSFullAccess
RAM 子账号
子账号需要授权
AliyunOSSFullAccess
创建或者使用已有的子账号的 AK SK
集成配置
1. 创建 使用阿里云 OSS 集成
2. 使用文件上传组件
上传组件
动作:选择上传至阿里云 OSS
OSS 凭证操作:选择创建的 oss_link 集成
配置最大可上传的文件大小
操作类型:获取选择表单上传配置(最大只是 5G)
目录:配置提交到 OSS 的文件目录,注意:这里不能以 / 开头,上图配置的目录为:
{{mobi.appInfo.appId}}/{{mobi.currentUser.name}}
表达的概念是,上传到当前应用目录下的某个用户的目录下访问权限:继承 Bucket,注意:这里的选择是默认的,可以根据您需求进行配置
选择 oss_link 回调
配置上传成功后的事件
配置文件上传之后的访问地址给指定的变量,
{{up_file.action}}/{{up_file.extraData.key}}
这里采用拼串的方式组合出文件的下载地址
配置过程中遇到的问题总结
文件上传后访问提示 AccessDenied
解决方案
需要在 OSS 中关闭阻止公共访问
获取上传策略失败
解决方案
检查 OSS 的跨域配置,需要包含的链接,自己的域名地址,魔笔的测试链接( https://runtime.mobiapp.cloud ),魔笔的设计时地址( https://mobinext.console.aliyun.com )
上传错误
解决方案
检查 Bucket 是否配置正确
分片上传失败
1. 解决方案
暴露 Headers 是否配置
ETag
2. 解决方案
检查集成是否有配置 ARN 对应字段搜索本文档:ARN 信息
上传失败 InvalidObjectName 400
解决方案
目录配置不能存在前缀
/
正确示例: