codecamp

支付宝小程序Serverless 阿里云能力API·Serverless 文件管理

步骤一:设置文件权限

小程序 Serverless 提供了一套简明易懂的 JSON 语法用来控制用户对资源的访问,类似于身份验证体系里的 IAM 或者网络安全中的 ACL。您可以通过修改权限规则来管理文件权限。

小程序 Serverless 会为每个新建的文件自动提供一个默认权限规则。默认规则规定所有文件都只有资源所有者可以进行写操作,所有人可读。您可以在控制台上修改文件权限。

  1. 打开小程序云控制台,在云存储页面,单击权限图标。

  1. 修改权限规则,然后单击保存。

云存储权限.jpg

上面的权限规则由多个子规则组成,每个子规则包含以下信息:

  • 范围:用于定义规则生效范围。在数据存储的安全规则中,每一个规则的范围是一个文件(路径)。您可以通过文件路径指定一个特定的文件, 也可以通过 JavaScript 的正则表达式指代一批文件或使用星号(*)指代所有文件。
  • 操作:用于定义生效范围内的特定操作。所有人都具有文件的读权限。.write 代表写操作,* 代表所有操作。
  • 策略:用于确定生效范围内的特定操作是否允许。默认没有标记为允许的操作,都是不允许的。策略是操作是否被允许的标记,可以是一个布尔值,或者是一个表达式。当策略冲突时,以最先出现的规则策略为准。如默认的权限规则策略表达式 request.auth.userId == resource.auth.userId 代表所有文件都只有资源所有者可以进行写操作,所有人可读。

步骤二:云存储操作

控制台操作

  1. 打开小程序云控制台,在云存储页面,单击上传文件。

  1. 单击直接上传或将文件拖拽至上传区域。

文件上传过程中,请勿刷新或关闭页面,否则上传任务会被中断且列表会被清空。

存储操作.jpg

  1. 上传成功后,您可以单击详情查看图片下载地址。

小程序端调用

  1. 在小程序项目的根目录执行以下命令安装 SDK。
    npm install @alicloud/mpserverless-sdk --save
  2. 文件上传或删除。
    // 选择文件上传
    my.chooseImage({
    chooseImage: 1,
    success: res => {
    const path = res.apFilePaths[0];
    const options = {
      filePath: path,
      headers: {
        contentDisposition: 'attachment',
      },
    };
    my.serverless.file.uploadFile(options).then(console.log).catch(console.error);
    },
    });   
    // 删除之前上传的文件
    my.serverless.file.deleteFile('https://resource.bspapp.com/xxx-xx/4b82ded0-0118-4de4-9f50-ab13110a1ffb.jpg')                     .then(res => {
    console.log(res);
    }).catch(err => {
    console.error(err);
    });

    开发者技术支持群

加入支付宝小程序 Serverless 开发者群参与讨论,钉钉搜索群号:21922182,或使用钉钉扫描二维码加入。

image



支付宝扫描以下二维码登陆官方小程序【小程序云开发助手】,获取更多云开发教程以及在线体验云开发。

推广码.jpg

支付宝小程序Serverless 阿里云能力API·Serverles 数据库管理
支付宝小程序 云应用介绍
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

支付宝小程序开发文档

支付宝小程序 快速示例

支付宝小程序 小程序快速示例

支付宝小程序 框架

支付宝小程序 组件

支付宝小程序组件 基础组件

支付宝小程序组件 无障碍访问

支付宝小程序 扩展组件

支付宝小程序扩展组件 UI组件

支付宝小程序 API

支付宝小程序 开发工具

支付宝小程序 云服务

支付宝小程序 Serverless

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }