欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  新闻

小程序怎么上传图片,详细上传步骤请看本篇

程序员文章站 2024-03-26 17:40:11
很多小程序都为用户提供图片上传功能。这时候,使用一些「对象存储」云服务,也许是最快、最经济的选择。那么,小程序该如何使用这类服务呢?使用的时候,又应该注意哪些问题呢?小功能程序今天分享的这篇文章,会以...
小程序怎么上传图片,详细上传步骤请看本篇

很多小程序都为用户提供图片上传功能。这时候,使用一些「对象存储」云服务,也许是最快、最经济的选择。那么,小程序该如何使用这类服务呢?使用的时候,又应该注意哪些问题呢?

小功能程序今天分享的这篇文章,会以腾讯云的对象存储服务为例,教大家将小程序接入对象存储服务。

小程序怎么上传图片,详细上传步骤请看本篇

准备工作

上传图片,主要是将图片上传到腾讯云对象存储(cos)。要使用对象存储 api,需要先执行以下步骤:

  • 购买腾讯云对象存储(cos)服务。
  • 在腾讯云 对象存储控制台 里创建一个 bucket。
  • 在控制台「个人 api 密钥」页面里,获取 appid、secretid、secretkey 等内容。
  • 编写一个请求签名算法程序(或使用任何一种服务端 sdk)
  • 计算签名,调用 api 执行操作。

所以,我们要做的准备工作有:

  • 进入腾讯云官网(www.qcloud.com),注册帐号。
  • 登录云对象存储服务(cos)控制台,开通 cos 服务,创建资源需要上传的 bucket。
  • 在公众平台小程序后台中,配置相关域名信息(否则无法在小程序中发起对该域名的请求)。
小程序怎么上传图片,详细上传步骤请看本篇

这些配置过程这里就不做说明了,接下来主要介绍步骤 4 和 5。小程序上传图片到 cos 的流程图,如下:在这个过程中我们需要实现的是,鉴权服务器返回签名的步骤,以及小程序处理图片的相关步骤。cos 鉴权服务使用对象存储服务 cos 时,可通过 restful api,对 cos 发起 http 匿名请求或签名请求。对于签名请求,cos 服务器端将会进行对请求发起者的身份验证。

  • 匿名请求:http 请求不携带任何身份标识和鉴权信息,通过 restful api 进行 http 请求操作。
  • 签名请求:http 请求时添加签名,cos服务器端收到消息后,进行身份验证,验证成功则可接受并执行请求,否则将会返回错误信息并丢弃此请求。

腾讯云 cos 对象存储,基于密钥 hmac(hash message authentication code)的自定义 http 方案,进行身份验证。在此例中,上传图片是一个签名请求,需要进行签名验证。1. 签名流程客户通过对 http 请求进行签名,并将签名后的请求发送至腾讯云进行签名验证,具体流程如下图所示:我们使用 sdk 开发,只需要大致了解这个流程就行。在 sdk 中已包含签名的实现,我们只需要调用 sdk 中的方法即可。通过签名流程我们可以知道,签名需要 secrtid和 secretkey,这两个信息不适合存放在客户端中,这也是我们单独部署一个鉴权服务器的主要原因。2. 生成签名的接口在之前的文章中,我介绍过,我在服务端使用 sanic 框架和 swagger_py_codegen生成 rest api。为了完成签名生成 api,我们需要先在文档中添加 api 的相关描述。这个接口我们要求登录才能调用。文档定义完成之后,调用 swagger_py_codegen>s docs/v1.ym1 . p apis -tlp sanic生成代码模板。api 代码实现如下:由于腾讯云 cos v4 的 python sdk 只支持 python 2,而 sanic 需要 python 3.5+,所以,这里我 fork 出来一份添加了 python 3 的支持,使用 python 3 的开发者,可以使用它。

  • :上传的文件目录
小程序怎么上传图片,详细上传步骤请看本篇

在此来获取图片的上传进度,所以在这里,我将图片的上传进度显示了出来。