《微信小程序开发从入门到实战》学习四十一

news2024/11/25 2:55:02

4.3 云开发文件存储

文件存储功能支持将任意数量和格式的文件(如图片和视频)保存在云端,支持 以文件夹的形式将文件归类。

在云开发控制台中,可以对云端保存的文件进行管理。

也可以通过文件存储API对文件进行上传、删除、移动、下载和搜索操作。

4.3.1 在控制台中管理文件存储

云开发控制台的文件存储管理页面如下图所示:

在云开发控制平台,管理文件存储的操作方式与网盘相似 ,

单击按钮可以实现上传文件,删除文件,新建文件夹,删除文件夹。在文件列表里查询到文件名称、FileID、文件大小及更新时间等信息,在当前路径中通过文件名称的前缀搜索文件。

    上传的文件有一个唯一的FileID,在小程序基础库2.3.0以上的版本,image组件和video文件组件都支持云开发的FileID,可通过src属性使用对应文件的FileID,代码如下:

  <image src="cloud://test-8-1322735059/test.png"/>

在控制台中,可对文件存储的权限设置进行修改。

云开发控制台和服务端API始终有所有文件的读/写权限,

小程序端API的权限控制提供了四个级别的权限,如下所示:

权限规则使用场景
所有用户可读,仅创建者可读/写用户头像、用户公开相册等
仅创建者可读/写私密相册、网盘文件等
所有用户可读(仅管理端可写)文章配图、商品图片等
所有用户不可读/写(仅管理端可读/写)业务日志等

(刚刚意识到创建者不是代码创建者,而是指用户创建自己用户头像相册这个创建者。)

4.3.2 上传文件

小程序端和云函数,可使用API将文件上传至云空间文件存储空间。

上传文件与下载文件的小程序API与服务端API不太一样。

在小程序端,使用wx.cloud.uploadFile可以将本地文件上传至云空间,代码如下:

    // 使用回调风格的API上传文件,会返回一个uploadTask对象

   const uploadTask = wx.cloud.uploadFile({

     cloudPath: 'example.png', //上传至云端的路径

     filePath: '/imgs/StockSnap_MUT1M3ZKZX.jpg', //本地文件路径

     success: res => {

       // 上传成功后会返回文件的FileID

       // 可以根据具体的使用需求对FileID进行一些操作,例如与其他相关信息一起保存在数据库中

       console.log(res.fileID)

     },

     fail: err => {

      console.log(err)

     }

   })

   // 在uploadTask 对象上可以设置上传进度的监听回调

   uploadTask.onProgressUpdate(res => {

     console.log('上传进度', res.progress)

     console.log('已经上传的数据进度', res.totalBytesSent)

     console.log('预期需要上传的数据总长度', res.totalBytesExpectedToSend)

   })

   // 也可以通过uploadTask上面的abort方法取消上传任务

   // uploadTask.abort()

   //上传文件同样也支持Promise风格的API,但是不再返回uploadTask对象

   wx.cloud.uploadFile({

     cloudPath:'example.jpg',

     filePath: '/imgs/StockSnap_MUT1M3ZKZX.jpg'

   }).then(res => {

     //get resource ID

     console.log(res.fileID)

   }).catch(error => {

     //handle error

   })

如果云空间已经存在该文件,则上传时会覆盖源文件。

如果希望将文件上传云空间的某个文件夹下,只需要将文件夹名称放入cloudPath,加上“/”.

cloudPath: 'test/example.png'

上传文件的本地路径可以通过小程序提供的一些API获取,比如从相册选取图片的APIwx.chooseImage,代码如下:

wx.chooseImage({

     count: 1,//最多选取几张图片

     success(res) {

       // tempFilePath是一个string[]类型的值,数组的每一项代表了用户选取的图片的临时地址

       const tempFilePaths = res.tempFilePaths

       wx.cloud.uploadFile({

         cloudPath: 'test/example.jpg',

         filePath:tempFilePaths[0] //由于限制了count为1,因此数组中只有1个元素

       })

     }

   })

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1287854.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android Chips(标签)

目录 一、流式布局标签发展历程 二、类型及使用 2.1 Chip.Action(默认值) 2.2 Chip.Entry 2.3 Chip.Filter 2.4 Chip.Choice 三、常用事件 3.1 OnClickListener 3.2 OnCheckedChangeListener 3.3 OnCloseIconClickListener 四、ChipGroup 4.1 ChipGroup Chip.Choi…

java开发神器之ecplise的基本使用

java开发神器之ecplise的基本使用 一、ecplise的安装二、利用ecplise创建工作空间 一、ecplise的安装 免安装eclipse程序包 二、利用ecplise创建工作空间 1、准备好eclipse的程序包&#xff0c;右键执行程序。 2、若打开eclipse显示如下第一张图的界面提示&#xff0c;是因…

leetcode 1004. 最大连续1的个数 III(优质解法)

代码&#xff1a; class Solution {public int longestOnes(int[] nums, int k) {int lengthnums.length;int zero0; //计数器&#xff0c;计数翻转 0 的个数int max0; //记录当前获得的最长子数组长度for(int left0,right0;right<length;right){if(nums[right]0){zero;wh…

scipy笔记:scipy.interpolate.interp1d

1 主要使用方法 class scipy.interpolate.interp1d(x, y, kindlinear, axis-1, copyTrue, bounds_errorNone, fill_valuenan, assume_sortedFalse) 2 主要函数 x一维实数值数组&#xff0c;代表插值的自变量y N维实数值数组&#xff0c;其中沿着插值轴的 y 长度必须等于 x 的…

根文件系统的开机自启动测试

一. 简介 本文在之前制作的根文件系统可以正常运行的基础上进行的&#xff0c;继上一篇文章地址如下&#xff1a; 完善根文件系统-CSDN博客 在前面测试软件hello 运行时&#xff0c;都是等 Linux 启动进入根文件系统以后手动输入 “./hello” 命令 来完成的。 我们一般做好产…

<Linux>(极简关键、省时省力)《Linux操作系统原理分析之文件管理(2)》(23)

《Linux操作系统原理分析之文件管理&#xff08;2&#xff09;》&#xff08;23&#xff09; 7 文件管理7.3 文件的目录结构7.3.1 文件说明、目录文件7.3.2 文件目录结构 7.4 文件存取与操作 7 文件管理 7.3 文件的目录结构 7.3.1 文件说明、目录文件 文件说明 FCB&#xff…

dockerdesktop 制作asp.net core webapi镜像-连接sqlserver数据库容器

1.使用visual studio 创建 asp.net core webapi项目 选择启用docker 会生成Dockerfile文件 2.使用efcore连接数据库&#xff0c;安装efcore的包 <ItemGroup><PackageReference Include"Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version&qu…

如何配置WinDbg和VMware实现内核的调试

设置 VMware 的虚拟串口 运行 VMware&#xff0c;首先将 Guest OS 系统电源关闭&#xff0c;这样才能修改该系统的虚拟机设置。 单击界面上的“编辑虚拟机设置”选项对虚拟机的属性进行设置。 单击“添加”按钮&#xff0c;打开 VMware 的 添加硬件向导 对话框 选择“串行端口…

第17章 匿名函数

第17.1节 匿名函数的基本语法 [捕获列表](参数列表) mutable(可选) 异常属性 -> 返回类型 { // 函数体 }语法规则&#xff1a;lambda表达式可以看成是一般函数的函数名被略去&#xff0c;返回值使用了一个 -> 的形式表示。唯一与普通函数不同的是增加了“捕获列表”。 …

Python 调用企业微信群机器人发送消息及文件

Python 操作企业微信群机器人。 企业微信群创建机器人 &#xff1a; 安装 requests json &#xff1a; pip install requests pip install json发送消息&#xff08;markdown&#xff09; import requests import json# 企业微信机器人发送文字 def send_markdown (message, …

7.Vue UI库

7.Vue UI库 7.1移动端常用的UI库 &#xff08;1&#xff09; Vant&#xff1a;Vant 4 - A lightweight, customizable Vue UI library for mobile web apps.A lightweight, customizable Vue UI library for mobile web apps.https://vant-ui.github.io/vant/#/zh-CN &#xf…

分类预测 | Matlab实现OOA-CNN-SVM鱼鹰算法优化卷积支持向量机分类预测

分类预测 | Matlab实现OOA-CNN-SVM鱼鹰算法优化卷积支持向量机分类预测 目录 分类预测 | Matlab实现OOA-CNN-SVM鱼鹰算法优化卷积支持向量机分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现OOA-CNN-SVM鱼鹰算法优化卷积支持向量机分类预测&#xff0…

在AWS CodeBuild中更新Lambda导致进程被占用(status error 255)的解决方案

大纲 1 问题描述1.1 错误提示1.2 错误分析和解决方案 2 解决方法2.1 YMAL文件样例 参考文献 1 问题描述 在Lambda的部署实践中&#xff0c;我们尝试使用CodeBuild将代码更新到Lambda函数中。在这个过程中&#xff0c;偶尔会触发一个不太常见的状态&#xff1a;Lambda状态一直是…

用友NC Cloud FileParserServlet反序列化RCE漏洞复现

0x01 产品简介 用友 NC Cloud 是一种商业级的企业资源规划云平台,为企业提供全面的管理解决方案,包括财务管理、采购管理、销售管理、人力资源管理等功能,实现企业的数字化转型和业务流程优化。 0x02 漏洞概述 用友 NC Cloud FileParserServlet接口存在反序列化代码执行漏…

IDEA版SSM入门到实战(Maven+MyBatis+Spring+SpringMVC) -Mybatis核心配置详解

第一章 Mybatis核心配置详解【mybatis-config.xml】 1.1 核心配置文件概述 MyBatis 的配置文件包含了会深深影响 MyBatis 行为的设置和属性信息。 1.2 核心配置文件根标签 没有实际语义&#xff0c;主要作用&#xff1a;所有子标签均需要设置在跟标签内部 1.3 核心配置文件…

设计模式之结构型模式(适配器、桥接、组合、享元、装饰者、外观、代理)

文章目录 一、结构型设计模式二、适配器模式三、桥接模式四、组合模式五、享元模式六、装饰者模式七、外观模式八、代理设计模式 一、结构型设计模式 这篇文章我们来讲解下结构型设计模式&#xff0c;结构型设计模式&#xff0c;主要处理类或对象的组合关系&#xff0c;为如何…

中文手写数字数据识别

实验环境 python3.7torch1.13.1cu117 torchaudio0.13.1cu117 torchvision0.14.1数据下载地址&#xff1a;Mnist中文手写数字数据集Python资源-CSDN文库 这些汉字包括&#xff1a; 零、一、二、三、四、五、六、七、八、九、十、百、千、万、亿 总共15个汉字&#xff0c;分别…

HarmonyOS学习--了解基本工程目录

1.工程级目录 工程的目录结构如下&#xff1a; 其中详细如下&#xff1a; AppScope中存放应用全局所需要的资源文件。entry是应用的主模块&#xff0c;存放HarmonyOS应用的代码、资源等。oh_modules是工程的依赖包&#xff0c;存放工程依赖的源文件。build-profile.json5是工…

Scrapy爬虫数据存储为JSON文件的解决方案

什么是JSON文件 JSON&#xff08;JavaScript Object Notation&#xff09;是一种轻量级的数据交换格式&#xff0c;易于人们阅读和编写&#xff0c;同时也易于机器解析和生成。它基于JavaScript Spark语言的一个子集&#xff0c;但独立于Smashing语言&#xff0c;因此在许多中…

C语言每日一题(46)整数转罗马数字

力扣网12 整数转罗马数字 题目描述 罗马数字包含以下七种字符&#xff1a; I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D …