provider-oss-aliyun.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import OSS from "ali-oss";
  2. import Parse from "parse";
  3. export class ProvierOssAli{
  4. client:OSS|undefined
  5. async initClient(){
  6. if(this.client) return
  7. // 获取STS临时口令
  8. let result:any = await Parse.Cloud.run("aliOssSTS");
  9. this.client = new OSS({
  10. // yourRegion填写Bucket所在地域。以华东1(杭州)为例,yourRegion填写为oss-cn-hangzhou。
  11. region: "oss-cn-beijing",
  12. // 从STS服务获取的临时访问密钥(AccessKey ID和AccessKey Secret)。
  13. accessKeyId: result?.AccessKeyId,
  14. accessKeySecret: result?.AccessKeySecret,
  15. // 从STS服务获取的安全令牌(SecurityToken)。
  16. stsToken: result?.SecurityToken,
  17. // 填写Bucket名称。
  18. bucket: result?.ALI_OSS_BUCKET || "hep-textbook",
  19. });
  20. }
  21. constructor(){
  22. }
  23. async upload(file:File,onProcess:Function){
  24. await this.initClient();
  25. let now = new Date();
  26. let fname = `${Parse.User.current()?.id}/${now.getFullYear()}-${now.getMonth()+1}-${now.getDate()}/${now.getTime()}-${file?.name}`;
  27. const r1 = await this.client?.put(fname, file);
  28. console.log(file)
  29. console.log('put success: %j', r1);
  30. return r1
  31. }
  32. }