关闭

Oss 对象服务存储前端方法封装

时间: 2020-10-04阅读: 92标签: 存储

1、根据oss url 获取文件数据

/** * @description 获取文件数据流 * @author easten * @date 2020-07-16 * @export * @param {*} files 文件列表 * @returns 文件数据流对象 */ export function getFileStream(files) { return new Promise(resolve => { if (files.length > 0) { let data = []; files.forEach(item => { ossRepository .download(getFileUrl(item.url), p => {}) .then(res => { data.push({ name: `${item.name}${item.type}`, blob: res, }); if (data.length == files.length) { resolve(data); } }); }); } }); }


2、文件单个/多个下载

export function fileDownload(files) { if (files instanceof Array) { // 多文件打包下载 getFileStream(files).then(datas => { // 拼装压缩包格式 if (datas.length > 0) { SaveMultipleFile(`附件.zip`, datas).then(() => { console.log('下载成功'); }); } }); } else { // 单文件下载 ossRepository .download(getFileUrl(files.url), progress => {}) .then(blob => { SaveSingleFile(`${files.name}${files.type}`, files.size, blob).then(a => { console.log('下载成功'); }); }); } } /** * @description 批量下载 * @author easten * @date 2020-07-13 * @export * @param {*} zipName 压缩包名称 * @param {*} files 需要压缩的文件信息 */ export function SaveMultipleFile(zipName, files) { return new Promise((resolve,error) => { // 首先定义一个文件夹 let zip=new jsZIP(); files.forEach(a=>{ zip.file(a.name,a.blob); }); zip.generateAsync({type:"blob"}) .then(function(content) { saveAs(content, zipName); resolve(); }).catch(()=>{ error(); }); }); }


3、常用的文件类型

export let resourceIcon = { folder: 'folder-open', xls: 'file-excel', xlsx: 'file-excel', md: 'file-markdown', pdf: 'file-pdf', ppt: 'file-ppt', txt: 'file-text', doc: 'file-word', unknown: 'file-unknown', zip: 'file-zip', other: 'file', jpg: 'file-image', }; // 创建文件格式对应表 export const FileTypes = [ { k: 'audio/3gpp', v: '3gpp' }, { k: 'video/3gpp', v: '3gpp' }, { k: 'audio/ac3', v: 'ac3' }, { k: 'allpication/vnd.ms-asf', v: 'asf' }, { k: 'audio/basic', v: 'au' }, { k: 'text/css', v: 'css' }, { k: 'text/csv', v: 'csv' }, { k: 'application/msword ', v: 'dot' }, { k: 'application/xml-dtd', v: 'dtd' }, { k: 'image/vnd.dwg', v: 'dwg' }, { k: 'image/vnd.dxf', v: 'dxf' }, { k: 'image/gif', v: 'gif' }, { k: 'text/htm', v: 'htm' }, { k: 'text/html', v: 'html' }, { k: 'image/jp2', v: 'jp2' }, { k: 'image/jpeg', v: 'jpeg' }, { k: 'text/JavaScript', v: 'js' }, { k: 'application/JavaScript', v: 'js' }, { k: 'application/json', v: 'json' }, { k: 'audio/mpeg', v: 'mp2' }, { k: 'audio/mp4', v: 'mp4' }, { k: 'video/mpeg', v: 'mpeg' }, { k: 'application/vnd.ms-project', v: 'mpp' }, { k: 'application/ogg', v: 'ogg' }, { k: 'audio/ogg', v: 'ogg' }, { k: 'application/pdf', v: 'pdf' }, { k: 'image/png', v: 'png' }, { k: 'application/vnd.ms-powerpoint', v: 'ppt' }, { k: 'application/rtf', v: 'rtf' }, { k: 'text/rtf', v: 'rtf' }, { k: 'image/vnd.svf', v: 'svf' }, { k: 'image/tiff', v: 'tif' }, { k: 'text/plain', v: 'txt' }, { k: 'application/vnd.ms-works', v: 'wdb' }, { k: 'text/xml', v: 'xml' }, { k: 'application/xhtml+xml', v: 'xhtml' }, { k: 'application/xml', v: 'xml' }, { k: 'application/vnd.ms-excel', v: 'xls' }, { k: 'aplication/zip', v: 'zip' }, { k: 'pplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet', v: 'xlsx' }, ];

4、文件大小转换

/** * @description 文件大小转换 * @author easten * @date 2020-07-08 * @export * @param {*} fileSize * @returns kb GB G */ export function FileSizeTrans(fileSize) { let size = ''; if (fileSize < 0.1 * 1024) { //如果小于0.1KB转化成B size = fileSize.toFixed(2) + 'B'; } else if (fileSize < 0.1 * 1024 * 1024) { //如果小于0.1MB转化成KB size = (fileSize / 1024).toFixed(2) + 'KB'; } else if (fileSize < 0.1 * 1024 * 1024 * 1024) { //如果小于0.1GB转化成MB size = (fileSize / (1024 * 1024)).toFixed(2) + 'MB'; } else { //其他转化成GB size = (fileSize / (1024 * 1024 * 1024)).toFixed(2) + 'GB'; }



站长推荐

1.云服务推荐: 国内主流云服务商,各类云产品的最新活动,优惠券领取。地址:阿里云腾讯云华为云

2.广告联盟: 整理了目前主流的广告联盟平台,如果你有流量,可以作为参考选择适合你的平台点击进入

链接: http://www.fly63.com/article/detial/9815

关闭

js中cookie操作总结:cookie设置,读取,删除,判断是否存在

有时也用其复数形式 Cookies,指某些网站为了辨别用户身份,JavaScript对cookie的相关操作,设置cookie,读取cookie,删除cookie,判断cookie是否存在.......

HTTP缓存和浏览器的本地存储

http请求做为影响前端性能极为重要的一环,因为请求受网络影响很大,如果网络很慢的情况下,页面很可能会空白很久。对于首次进入网站的用户可能要通过优化接口性能和接口数量来解决。但是,对于重复进入页面的用户,除了浏览器缓存

Web 存储技术

第一个Web存储的技术叫做Cookie,它是网站的身份证。是网站为了辨别用户身份,进行session(服务端的session)跟踪而存储在用户本地终端上的数据,也就是说它是存在电脑硬盘上的,一个很小的txt类型的文件

nodejs如何将获得的数据保存到本地?

nodejs将获得的数据保存到本地可以使用Cookie进行数据保存或使用sessionStorage、localStorage进行数据保存。Cookie这个恐怕是最常见也是用得最多的技术了,也是比较古老的技术了。

JS中原始值和引用值的储存方式

在ECMAscript中,变量可以存放两种类型的值,即原始值和引用值。原始变量及他们的值储存在栈中,当把一个原始变量传递给另一个原始变量时,是把一个栈房间的东西复制到另一个栈房间,且这两个原始变量互不影响。

localStorage设置过期时间

我们都知道localStorage不主动删除,永远不会销毁,那么如何设置localStorage的过期时间呢?使用场景: 1.利用本地数据,减少网络传输 ,2.弱网络环境下,高延迟,低带宽,尽量把数据本地化

Token ,Cookie和Session的区别

在做接口测试时,经常会碰到请求参数为token的类型,但是可能大部分测试人员对token,cookie,session的区别还是一知半解

在前后端分离的项目中,ajax跨域请求怎样附带cookie

后台保存用户信息通常使用的session和cookie结合的方法,而在前端的实际情况中,跨域产生的ajax是无法携带cookie信息的,这样导致了session和cookie的用户信息储存模式受到影响,该怎样去解决这样一个问题呢

ES6封装H5本地存储localStorage、sessionStorage

localStorage: 方法存储的数据没有时间限制。sessionStorage: 方法针对一个 session 进行数据存储。当用户关闭浏览器窗口后,数据会被删除。

localStorage本地持久化存储API

localStorage, 是一个用来做本地持久化存储的Web Api。 localStorage以键值对的形式存储数据。用法很简单:localStorage是以『源(origin)』为维度进行存储的。

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!