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