controller.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import { Manager } from '@/utils/manager'
  2. export const objectsModel = {
  3. async getAcl (resId, key) {
  4. let bucketsManager = new Manager('buckets', 'v2')
  5. try {
  6. const { data = {} } = await bucketsManager.getSpecific({ id: resId, spec: 'acl', params: { key } })
  7. return data
  8. } catch (err) {
  9. throw err
  10. } finally {
  11. bucketsManager = null
  12. }
  13. },
  14. async getUrl (row, resId, accessUrl) {
  15. const { key } = row
  16. // const { acl } = await this.getAcl(resId, key)
  17. let bucketsManager = new Manager('buckets', 'v2')
  18. try {
  19. const params = {
  20. key,
  21. method: 'GET',
  22. }
  23. // 链接有效时间 秒
  24. if (row.expire_seconds) {
  25. params.expire_seconds = row.expire_seconds
  26. }
  27. const { data = {} } = await bucketsManager.performAction({
  28. id: resId,
  29. action: 'temp-url',
  30. data: params,
  31. })
  32. const { url } = data
  33. if (url) {
  34. if (!url.startsWith('http')) {
  35. return `http://${url}`
  36. }
  37. return url
  38. } else if (accessUrl) {
  39. if (!accessUrl.startsWith('http')) {
  40. return `http://${accessUrl}/${key}`
  41. }
  42. return `${accessUrl}/${key}`
  43. }
  44. return null
  45. } catch (err) {
  46. throw err
  47. } finally {
  48. bucketsManager = null
  49. }
  50. },
  51. }