OSS文件上传
简介:
开发过程中,多多少少会用到图片上传、文件上传等,大多数都会选择第三方云服务提供的相关功能,比如阿里云、腾讯云、七牛云等等云服务提供商提供的文件存储运营商提供的服务。本次介绍使用的主要是阿里云的OSS文件直传,阿里云存储文件方式有多种,目前主要就工作中用到的阿里云oss文件直传做案例做笔记,以便于帮助有类似需求的同行及自己学习。
注意事项:
1、文件分类:主要是方便日后文件的管理,同时也便于查找。
2、文件重命名:上传文件有时候会出现重名等问题,有时候会给使用者造成一定的影响,不利用用户区分文件是否上传;统一规则对文件进行命名,目的是为了方便日后文件管理维护等。
3、文件大小限制:限制上传文件的大小,主要是减少上传完文件等待的时间,以及带宽的消耗,同时也可以减少云存储的存储空间的占用。
4、文件存储归类:依据文件的类型、格式、时间等进行文件的归类,目的在于文件规划合理,存储有序,便于后期的管理和维护。
代码实例:
- OSS配置
/**
* [OSS配置]
* @type {Object}
*/
const conf = {
accessKeyId: "accessKeyId",// OSS上传需要的Id
accessKeySecret: "accessKeySecret",// OSS上传需要的Secret
ali: "https://xxxxx.oss-cn-beijing.aliyuncs.com",// 阿里云OSS存储对象地址
bucket: "xxxxx" // 类型
};
- 文件重命名(文件分类)
/**
* [文件重命名]
* @param {String} suffixName [文件后缀名]
* @return {String} [文件相对路径名]
*/
const fileRename = suffixName => {
// 处理时间戳
const moment = new Date();
let yyyy = moment.getFullYear(),
MM = moment.getMonth() + 1,
dd = moment.getDate(),
hh = moment.getHours(),
mm = moment.getMinutes(),
ss = moment.getSeconds();
// 补“0”
MM = MM <= 9 ? "0" + MM : MM;
dd = dd <= 9 ? "0" + dd : dd;
// 5位数字的随机数
let rm = (Math.random() * 1e5).toFixed(),
path = `${
yyyy}${