微信小程序上传文件到阿里OSS教程

下面是详细的“微信小程序上传文件到阿里OSS教程”,包含以下步骤:

1. 注册阿里云账号

如果还没有阿里云的账号,需要先注册一个账号,注册地址:https://account.aliyun.com/register/register.htm

2. 创建 OSS Bucket

登录阿里云控制台,进入对象存储 OSS 控制台,创建自己需要的 Bucket。具体操作可以参考:https://help.aliyun.com/document_detail/32008.html

3. 获取阿里云 OSS 的 Access Key 和 Secret Key

在阿里云控制台中找到自己的 Access Key 和 Secret Key。在“AccessKey 管理”的界面可以创建 Access Key,Secret Key 就是 Access Key 对应的密码。

4. 小程序端上传文件

在小程序端使用 wx.uploadFile 方法来上传文件到阿里云 OSS。示例代码如下:

wx.uploadFile({
  url: 'https://yourbucketname.oss-cn-beijing.aliyuncs.com', // Bucket 域名,注意要使用 HTTPS 协议
  filePath: tempFilePath,
  name: 'file',
  header: {
    'content-type': 'multipart/form-data',
  },
  formData: {
    'key': '上传路径', // 上传到 OSS 的路径,可自定义
    'policy': '上传策略',
    'OSSAccessKeyId': 'AccessKeyId', // 这里需要替换成自己的 AccessKeyId
    'success_action_status': '200', // 上传成功后的返回状态码,默认为 204
    'signature': '上传签名', // 上传签名,可在服务端生成
  },
  success(res) {
    console.log('上传成功', res)
  },
  fail(res) {
    console.error('上传失败', res)
  }
})

其中,tempFilePath 是待上传文件的临时路径,key 是上传到 OSS 的路径,policy 是上传策略,OSSAccessKeyId 是 AccessKeyId,signature 是上传签名,这些需要在服务端生成并传递给小程序。

5. 服务端生成上传策略和签名

上传策略和签名是由服务端生成的,需要使用阿里云的 OSS Node.js SDK。示例代码如下:

const OSS = require('ali-oss')

// 初始化 OSS 客户端
const client = new OSS({
  region: 'oss 地域',
  accessKeyId: 'AccessKeyId',
  accessKeySecret: 'AccessKeySecret',
  bucket: 'Bucket 名称',
})

// 生成上传策略和签名
const policy = client.generateUploadPolicy({
  expiration: new Date(Date.now() + 60 * 60 * 1000), // 过期时间 1 小时
  conditions: [
    ['content-length-range', 0, 1048576000] // 限制文件大小,这里是 1GB
  ]
})
const signature = client.signature(policy)

console.log('上传策略:', policy)
console.log('上传签名:', signature)

其中,region 需要替换成实际的 oss 地域,accessKeyIdaccessKeySecret 分别对应阿里云控制台中的 Access Key 和 Secret Key,bucket 是创建的 OSS Bucket 名称。

示例

示例1:上传图片

wx.chooseImage({
  success(res) {
    const tempFilePath = res.tempFilePaths[0]
    wx.uploadFile({
      url: 'https://yourbucketname.oss-cn-beijing.aliyuncs.com',
      filePath: tempFilePath,
      name: 'file',
      header: {
        'content-type': 'multipart/form-data',
      },
      formData: {
        'key': `images/${Date.now()}_${Math.floor(Math.random()*1000)}.png`,
        'policy': '上传策略',
        'OSSAccessKeyId': 'AccessKeyId',
        'success_action_status': '200',
        'signature': '上传签名',
      },
      success(res) {
        console.log('上传成功', res)
      },
      fail(res) {
        console.error('上传失败', res)
      }
    })
  }
})

示例2:上传视频

wx.chooseVideo({
  sourceType: ['album', 'camera'],
  maxDuration: 60,
  success(res) {
    const tempFilePath = res.tempFilePath
    wx.uploadFile({
      url: 'https://yourbucketname.oss-cn-beijing.aliyuncs.com',
      filePath: tempFilePath,
      name: 'file',
      header: {
        'content-type': 'multipart/form-data',
      },
      formData: {
        'key': `videos/${Date.now()}_${Math.floor(Math.random()*1000)}.mp4`,
        'policy': '上传策略',
        'OSSAccessKeyId': 'AccessKeyId',
        'success_action_status': '200',
        'signature': '上传签名',
      },
      success(res) {
        console.log('上传成功', res)
      },
      fail(res) {
        console.error('上传失败', res)
      }
    })
  }
})

以上就是简单的“微信小程序上传文件到阿里OSS教程”的完整攻略,可根据实际情况作出修改。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:微信小程序上传文件到阿里OSS教程 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • Idea如何导入一个SpringBoot项目的方法(图文教程)

    下面我将详细讲解Idea如何导入一个SpringBoot项目的方法。 1. 创建SpringBoot项目 首先,我们需要创建一个SpringBoot项目,这里以使用Spring Initializr来创建为例。打开https://start.spring.io/,根据需求选择相应的配置,然后点击Generate下载生成的项目压缩包。解压后我们就得到了一个基本…

    Java 2023年5月19日
    00
  • FeignClient服务器抛出异常客户端处理方案

    要讲解”FeignClient服务器抛出异常客户端处理方案”,我们需要分别从服务端和客户端两个方面来进行说明。 服务端 在服务端,我们需要在被调用的服务接口上添加一个自定义异常处理器,以使得当服务端抛出异常时能够被正确地处理。具体步骤如下: 定义自定义异常类,并添加 @ResponseStatus 注解标识状态码,以方便客户端能够正确地处理异常。 @Resp…

    Java 2023年5月27日
    00
  • 扫微信小程序码实现网站登陆实现解析

    首先,我们需要了解微信小程序码和网站的登陆原理: 微信小程序码是一种二维码,可以直接扫描进入微信小程序。在网站中使用微信小程序码登录,需要先在微信公众平台上绑定网站的 appid,并在小程序代码中引入网站的登录页面。 网站的登陆原理,一般都是使用账号密码等安全信息进行验证,并在验证成功后向用户发放 token,以标识用户的身份。在这个过程中,需要涉及到加密与…

    Java 2023年5月23日
    00
  • Win2003服务器安全加固设置--进一步提高服务器安全性

    Win2003服务器安全加固设置–进一步提高服务器安全性 一、基础设置 1.更新安全补丁 定期更新最新的安全补丁,主要包括操作系统、IIS、SQL Server、Exchange等软件,确保系统处于最新的安全状态。 2.修改默认密码 默认密码较易被破解,需要及时修改,建议使用8位以上组合密码,包括大小写字母、数字和符号。 3.关闭不必要服务和端口 关闭不必…

    Java 2023年6月15日
    00
  • Java类之间的关系图_动力节点Java学院整理

    Java类之间的关系图_动力节点Java学院整理 在Java编程中,我们经常需要对类之间的关系进行分析和描述。类之间的关系可以用关系图来表示。在本文中,我们将讲解如何绘制Java类之间的关系图。 步骤1: 了解UML类图 UML(Unified Modeling Language)是一种用于软件设计的标准图形化语言。其中,类图是UML中最基本和最常用的图之一…

    Java 2023年5月26日
    00
  • 详解MyBatis开发Dao层的两种方式(Mapper动态代理方式)

    详解MyBatis开发Dao层的两种方式(Mapper动态代理方式) MyBatis是一种优秀的ORM工具,它提供了多种开发Dao层的方式。其中,Mapper动态代理方式是一种非常常用的Dao层开发方式。本篇攻略将详细讲解Mapper动态代理方式的实现过程和示例。 动态代理 Mapper动态代理方式是基于Java动态代理技术实现的。Java动态代理是指,在运…

    Java 2023年5月19日
    00
  • Apache Hudi结合Flink的亿级数据入湖实践解析

    Apache Hudi 是什么? Apache Hudi 是 Apache 基金会下的开源项目,它提供了一个数据湖解决方案,支持增量式的数据处理和可变的数据表现形式。Hudi 最初由 Ubiquiti 区块链团队在 2016 年开发,2019 年捐赠给 Apache 软件基金会。Hudi 的核心特性是 Delta Lake 和 Apache Kafka 支持…

    Java 2023年6月2日
    00
  • Apache Shiro 使用手册(五) Shiro 配置说明

    下面是 Apache Shiro 使用手册(五) Shiro 配置说明 的完整攻略: 概述 本文将详细介绍 Apache Shiro 的配置方式,包括常见的配置项和配置文件的使用方法。通过本文的学习,你将能够快速上手 Apache Shiro 的配置工作。 常见配置项 SecurityManager 在 Apache Shiro 中,SecurityMana…

    Java 2023年6月15日
    00
合作推广
合作推广
分享本页
返回顶部