七牛云上传静态资源

七牛云

七牛云提供了免费的CDN存储空间。
我们可以利用七牛云提供的功能,自定义我们自己的图床,自定义我们应用的静态资源服务器等等。
上传静态资源分两种方式:1.前端上传 2. 服务器上传

接下来我将参考七牛云官网SDK文档,分别实现两种上传方式。

准备工作: 先注册一个七牛帐号(注册地址),并登录控制台获取一对有效的 AccessKey 和 SecretKey(获取地址)。

一、前端上传

JavaScript-Sdk文档

  1. 引用

npm install qiniu-js
import * as qiniu from ‘qiniu-js’

  1. 使用说明

qiniu.upload 返回一个 observable 对象用来控制上传行为,observable 对像通过 subscribe 方法可以被 observer 所订阅,订阅同时会开始触发上传,同时返回一个 subscription 对象,该对象有一个 unsubscribe 方法取消订阅,同时终止上传行为。

  1. 代码
const observable = qiniu.upload(file, key, token, putExtra, config)const observer = {
  next(res){
    // ...
  },
  error(err){
    // ...
  },
  complete(res){
    // ...
  }
}
const subscription = observable.subscribe(observer) // 上传开始
// or
const subscription = observable.subscribe(next, error, complete) // 这样传参形式也可以
subscription.unsubscribe() // 上传取消

file: File对象
key: 文件名称
token: 需要后端配合,可以参考后面后端服务代码中获取token部分代码。
config,putExtra 配置参考下图

在这里插入图片描述

二、后端上传

1.Java

Maven

<dependency>
  <groupId>com.qiniu</groupId>
  <artifactId>qiniu-java-sdk</artifactId>
  <version>[7.2.0, 7.2.99]</version>
</dependency>
  1. 获取token
@RestController
@RequestMapping("/qiniu")
public class UtilController {
    public String accessKey = "B_4zonc-5muZd9dijUnUKrdxvBJ0-hdUYz5fWU8p";
    public String secretKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxx";
    public String bucket = "levenx";

    @GetMapping("/token")
    public Result uploadToken() {
        Auth auth = Auth.create(accessKey, secretKey);
        String upToken = auth.uploadToken(bucket);
        return Result.newResult(upToken);
    }

}
2.Node

NPM

 npm install qiniu
  1. 获取token
var accessKey = 'your access key';
var secretKey = 'your secret key';
var mac = new qiniu.auth.digest.Mac(accessKey, secretKey);
var options = {
  scope: bucket,
  expires: 7200
};
var putPolicy = new qiniu.rs.PutPolicy(options);
var uploadToken=putPolicy.uploadToken(mac);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

乐闻x

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值