txOssSts.js 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. /**
  2. * 微信小程序通过STS直传阿里云OSS
  3. *(uniapp版上传,小程序原生需要将uni.XXX替换为wx.XXX)
  4. *
  5. * @param {filePath} 图片临时地址
  6. * @param {option|Object} OSS和STS配置
  7. * @param {savePath} oss中的文件目录
  8. * @param {AccessKeySecret} 服务端返回的STS中的AccessKeySecret
  9. * @param {SecurityToken} 服务端返回的STS中的SecurityToken
  10. * @param {AccessKeyId} 服务端返回的STS中的AccessKeyId
  11. * @param {bucket} 存储桶
  12. * @param {area} 地区
  13. * @return {string|boolean} 成功返回文件地址,失败返回false
  14. */
  15. import getFileAccessUrl from "@/js_sdk/tencentcloud-plugin-cos/get-file-access-url";
  16. import tools from "./tools";
  17. import uploadFile from "@/js_sdk/tencentcloud-plugin-cos/upload-file";
  18. let cosServe={}
  19. /**
  20. * COS文件上传
  21. * @param file
  22. * @param folder 上传目录
  23. * @returns {Promise<unknown>}
  24. */
  25. cosServe.txUploadFile=async function (file,folder){
  26. //默认为个人目录gallery
  27. folder=folder==='moment'?'moment':'gallery'
  28. let key=folder+'/'+tools.getDate()+'/'+tools.getRandFileName(file.name)
  29. let url = await uploadFile(file,key);
  30. console.log(url)
  31. return url
  32. }
  33. cosServe.getSignUrl= async function (url){
  34. if(!url){
  35. return ''
  36. }
  37. console.log(url)
  38. url= url.replace('https://','')
  39. url= url.replace('http://','')
  40. url= url.replace('icoco-1317650740.cos.ap-guangzhou.myqcloud.com/','')
  41. let signUrl = await getFileAccessUrl(url);
  42. console.log(signUrl)
  43. return signUrl
  44. }
  45. export default cosServe