txOssSts.js 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. console.log('folder:'+folder)
  29. let user_id= uni.getStorageSync('user_id')
  30. if(!user_id){
  31. user_id='00'
  32. }
  33. console.log('user_id:'+user_id)
  34. console.log(file)
  35. if(!file.name){
  36. file.name=file.path
  37. }
  38. let key=folder+'/'+user_id+'/'+tools.getDate()+'/'+tools.getRandFileName(file.name)
  39. console.log('key:'+key)
  40. // #ifdef APP-PLUS
  41. file =file.path;
  42. //#endif
  43. let url = await uploadFile(file,key);
  44. console.log(url)
  45. return url
  46. }
  47. cosServe.getSignUrl= async function (url){
  48. if(!url){
  49. return ''
  50. }
  51. console.log(url)
  52. url= url.replace('https://','')
  53. url= url.replace('http://','')
  54. url= url.replace('icoco-1317650740.cos.ap-guangzhou.myqcloud.com/','')
  55. let signUrl = await getFileAccessUrl(url);
  56. console.log(signUrl)
  57. return signUrl
  58. }
  59. export default cosServe