1. 开通阿里云OSS服务,从控制台上获取AccessKeyId和AccessKeySecret。html
2. 建立Bucket,并登陆OSS控制台前端
3. 配置Bucketgit
可参考阿里官方文档:https://help.aliyun.com/docum...github
有两种方式:npm
1. 在HTML文件的<head>
中包含以下标签:segmentfault
<script src="http://gosspublic.alicdn.com/aliyun-oss-sdk-6.0.1.min.js"></script>
2. 项目中安装ali-oss微信
npm install ali-oss --save
可参考阿里官方文档:https://github.com/ali-sdk/al...this
这里使用第二种。阿里云
关于直传,阿里官方给了三种方案:spa
- 客户端 JavaScript 签名后直传;
- 客户端申请服务端签名,而后打包上传;
- 客户端申请服务端签名,打包上传OSS后回调服务端。
这里使用第一种。
1. aliUploadDemo.component.html,使用input元素选择文件
<input type="file" [(ngModel)]="fileVal" (change)="fileEvent($event)">
2. aliUploadDemo.component.ts
// 导入 ali-oss import * as OSS from 'ali-oss' ... export class AliUploadDemo{ client; this.client = new OSS({ accessKeyId: 'your access key', accessKeySecret: 'your access secret', bucket: 'your bucket name', region: 'oss-cn-hongkong' }); // 获取文件 fileEvent(fileInput: any) { const file = fileInput.target.files[0] // 获取文件资源 const reader = new FileReader() if (file) reader.readAsDataURL(file) // 读取文件 this.uploadFile(file); // 调用上传方法 fileInput.target.value = '' // 重置以便下次可上传同个文件(以经过change检测) } /* 上传文件至阿里云OSS * 官方解释:经过new OSS来建立client,建立后返回的是Promise, * 相似于callback的方式,在.then()中处理返回的结果,在.catch()中处理错误。 */ uploadFile(file){ this.client.put(aliName, file.fileVal).catch((err) => { if (err) { console.log(err); return; } }).then((result) => { console.log(result); } }
至此,上传操做已完成啦。可经过查看你的Bucket,或者经过返回的result,来肯定上传成功与否。
【参考资料】
声明:转发请注明出处,谢谢~