oss在thinkjs上传demo
来源:互联网 发布:mysql 查看临时表空间 编辑:程序博客网 时间:2024/05/22 17:08
在common中添加ossutil.js文件
ossutil.js内容如下:
'use strict';import co from 'co';import OSS from 'ali-oss';import fs from 'fs';export default class extends think.service.base { init(){ super.init(); } async uploadFile(file){ let filePath=file.path; let origName=file.originalFilename; let fileType=origName.substr(origName.lastIndexOf('.')); let newFilePath=''; let isChangeName=fileType.match(/\.(gif|png|jpe?g)$/i); if(think.isEmpty(isChangeName)){ newFilePath=origName; }else{ let date = new Date(); newFilePath=think.datetime(date,"YYYY/MM/DD/")+date.getTime()+fileType; } let result=await this.putStream(newFilePath,filePath); if(result.res.status==200){ return {"errno":0,"errmsg":""}; }else{ return {"errno":100,"errmsg":"","data":""}; } } //本地上传 async put(fileName,filePath){ let client=this.getClient(true); let result=co(function* () { let resultCo = yield client.put(fileName, filePath); return resultCo; }).catch(function (err) { console.log(err); }); return result; } //流式上传 async putStream(fileName,filePath){ let client=this.getClient(true); let result=co(function* () { let stream = fs.createReadStream(filePath); let resultCo = yield client.putStream(fileName, stream); return resultCo; }).catch(function (err) { console.log(err); }); return result; } //下载到本地文件 async get(object_key,localFile){ let client=this.getClient(true); let result=co(function* () { let resultCo = yield client.get(object_key, localFile); return resultCo; }).catch(function (err) { console.log(err); }); return result; } //流式下载 async getBuyStream(object_key,localFile){ let client=this.getClient(true); co(function* () { var result = yield client.getStream(object_key); var writeStream = fs.createWriteStream(localFile); result.stream.pipe(writeStream); }).catch(function (err) { console.log(err); }); } //获取文件buffer async getBuffer(object_key){ let client=this.getClient(true); let result=co(function* () { var resultCo = yield client.get(object_key); return resultCo.content; }).catch(function (err) { console.log(err); }); return result; } //获取Client方法 getClient(hasbucket){ if(hasbucket){ let client = new OSS({ region: 'xxxxxxxxxx', accessKeyId: 'xxxxxxxxxxx', accessKeySecret: 'xxxxxxxxxxxxxxx', bucket: 'xxxxxxx' }); return client; }else{ let client = new OSS({ region: 'xxxxxxxx', accessKeyId: 'xxxxxxxxxx', accessKeySecret: 'xxxxxxxxxxxxxxxxxxx' }); return client; } }}controller 中代码如下:import Base from './base.js';export default class extends Base { /** * index action * @return {Promise} [] */ async indexAction(){ return this.display(); } async uploadAction(){ let file = this.file('file'); let ossutil=think.service('ossutil'); let instance=new ossutil(); let result=await instance.uploadFile(file); return this.json(result) }}
1 0
- oss在thinkjs上传demo
- OSS阿里云文件上传 demo
- thinkjs 文件上传
- thinkjs请求oss报错:RequestTimeTooSkewedError:
- thinkjs
- 【OSS】OSS的Multipart上传
- 阿里云oss java上传,在bucket下新建文件夹
- OSS-图片上传
- 前端上传图片oss
- OSS上传图片
- OSS 上传图片详解
- OSS上传图片 java
- 阿里OSS上传总结
- 阿里oss文件上传
- 阿里云OSS 上传文件
- javascript 上传文件到 oss
- Oss使用文档 ##[上传,下载]
- 阿里云OSS分片上传
- java多线程实例---很有用 详细介绍
- Android开发:Service
- BYTE WORD DWORD
- linux查看指定目录下最大的10个文件
- iOS开发 - 如何使用请求头鉴权
- oss在thinkjs上传demo
- Java中的回调方法
- Postgres 主从复制搭建步骤
- 存储图片到本地、提取本地存储的图片
- 【复习题】:哈工大软件学院无线传感器网络期末考试题
- 自动车牌识别(ANPR)练习项目学习笔记2(基于opencv)
- Android Studio环境下Android单元测试(基于Robolectric+Mockito)
- 怎样最高效地学习Scala
- 鞍点