@smart100/spu-web-plugin 0.0.36 → 0.0.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smart100/spu-web-plugin",
3
- "version": "0.0.36",
3
+ "version": "0.0.38",
4
4
  "description": "",
5
5
  "scripts": {
6
6
  "dev": "npm run build:types && rollup -c -w",
@@ -39,6 +39,7 @@
39
39
  "dependencies": {
40
40
  "@amap/amap-jsapi-loader": "^1.0.1",
41
41
  "@smart100/wxworksuite-plugin": "^0.0.12",
42
+ "aws-sdk": "^2.1692.0",
42
43
  "axios": "^1.6.0",
43
44
  "co": "^4.6.0",
44
45
  "dayjs": "^1.11.10",
package/src/axios.ts CHANGED
@@ -9,6 +9,7 @@ import { get } from 'lodash-es'
9
9
  import { loadding } from './components/loadding'
10
10
  import login from './login'
11
11
  import core from './core'
12
+ import urlquery from './urlquery'
12
13
 
13
14
  interface Response {
14
15
  code: number | string
@@ -67,6 +68,13 @@ const createAxiosInstance = (type: 'spu' | 'normal' = 'spu', options: any) => {
67
68
  }
68
69
  }
69
70
 
71
+ // 平台的业务接口开了开发者模式后,header带上debug方便查看接口的ide日志
72
+ if (type !== 'spu' && urlquery.isdebugger && config.url.indexOf('api/teapi/dy-biz/') > -1) {
73
+ if (config?.headers) {
74
+ config.headers.debug = 'true'
75
+ }
76
+ }
77
+
70
78
  return config
71
79
  }, error => {
72
80
  return Promise.reject(error)
package/src/cloudServ.ts CHANGED
@@ -30,38 +30,23 @@ class CloudServ {
30
30
  lsProxy.removeItem(this.CLOUD_SERVE_KEY)
31
31
  }
32
32
 
33
- private getProvider (sign: StorageType = 'storage') {
33
+ public getProvider (sign: StorageType = 'storage'): IAny | null {
34
34
  const storage: NormalizedCloudServItem | null = this.get(sign)
35
35
  if (!storage) {
36
- return false
36
+ return null
37
+ }
38
+ const name = storage.cloudserv_storage_provider
39
+ return {
40
+ name: name,
41
+ isAliyun: name === 'aliyun',
42
+ isAzure: name === 'azure',
43
+ isAwss3: name === 'awss3',
44
+ isHuawei: name === 'huawei',
45
+ isMinio: name === 'minio'
37
46
  }
38
- return storage.cloudserv_storage_provider
39
- }
40
-
41
-
42
- public isAliyun (sign: StorageType = 'storage') {
43
- return this.getProvider(sign) === 'aliyun'
44
- }
45
-
46
- public isAzure (sign: StorageType = 'storage') {
47
- return this.getProvider(sign) === 'azure'
48
- }
49
-
50
- public isAwss3 (sign: StorageType = 'storage') {
51
- return this.getProvider(sign) === 'awss3'
52
- }
53
-
54
- public isHuawei (sign: StorageType = 'storage') {
55
- return this.getProvider(sign) === 'huawei'
56
47
  }
57
48
  }
58
49
 
59
- export default new CloudServ()
60
-
61
-
62
-
63
-
64
-
65
-
66
-
50
+ const cloudServ = new CloudServ()
67
51
 
52
+ export default cloudServ
package/src/index.ts CHANGED
@@ -9,7 +9,7 @@ import { initAxios, spuAxios, axios } from './axios'
9
9
  import { initSpuConfig, spuConfig } from './spuConfig'
10
10
  import { globalConfig } from './globalConfig'
11
11
  import { downloadService, uploadService } from './oss'
12
- import { getUniqueid, functionCheck, setTitle, getSpuContainerType, isInApp } from './utils'
12
+ import { getUniqueid, functionCheck, setTitle, getSpuContainerType, isInApp, isdebugger, isvirtuallocation } from './utils'
13
13
  import urlquery from './urlquery'
14
14
  import AMapLoader from './AMapLoader'
15
15
  import login from './login'
@@ -39,6 +39,8 @@ const globalOptions: any = {
39
39
 
40
40
  const install = (app: any, options: any) => {
41
41
 
42
+ initStorageProxy(globalOptions)
43
+
42
44
  urlquery.init()
43
45
 
44
46
  // console.log(app)
@@ -49,7 +51,7 @@ const install = (app: any, options: any) => {
49
51
  console.log('@smart100/spu-web-plugin globalOptions: ', globalOptions)
50
52
  // setTimeout(() => {
51
53
  // console.error('test888')
52
- // }, 1000)
54
+ // }, 5000)
53
55
 
54
56
  // if (install.installed) return
55
57
  // install.installed = true
@@ -65,7 +67,6 @@ const install = (app: any, options: any) => {
65
67
  // console.error('This plugin requires Vue App Instance')
66
68
  // }
67
69
 
68
- initStorageProxy(globalOptions)
69
70
  initAxios(globalOptions)
70
71
  initSpuConfig(globalOptions)
71
72
 
@@ -141,8 +142,6 @@ const wxworkSuite = {
141
142
  isWxworkApp
142
143
  }
143
144
 
144
-
145
-
146
145
  const Module = {
147
146
  getModuleData: core.getModuleData.bind(core),
148
147
  getEnvname: login.getEnvname.bind(login),
@@ -153,6 +152,8 @@ const Module = {
153
152
  }
154
153
 
155
154
 
155
+
156
+
156
157
  export {
157
158
  SPUWebPlugin as default,
158
159
  globalOptions,
@@ -183,5 +184,7 @@ export {
183
184
  Module,
184
185
  components,
185
186
  expandexp,
186
- wxworkSuite
187
+ wxworkSuite,
188
+ isdebugger,
189
+ isvirtuallocation
187
190
  }
package/src/login.ts CHANGED
@@ -329,7 +329,7 @@ class Login {
329
329
  let loginRole: 'center' | 'tenant' = 'tenant' // center | tenant
330
330
  if (token) {
331
331
  const jwtInfo = this.jwtDecode(token)
332
- if (jwtInfo?.LoginUser?.centerRole || jwtInfo?.LoginUser?.appId === '100') {
332
+ if (jwtInfo?.LoginUser?.centerRole) {
333
333
  // 产品运营中心登录
334
334
  loginRole = 'center'
335
335
  }
@@ -5,8 +5,10 @@ import ObsClient from '../package/huaweicloud-obs/esdk-obs-browserjs.3.22.3.min.
5
5
  // import * as ObsClient from '../package/huaweicloud-obs/esdk-obs-browserjs.3.22.3.min.js'
6
6
  // const ObsClient = require('../package/huaweicloud-obs/esdk-obs-browserjs.3.22.3.min.js')
7
7
 
8
+ import 'aws-sdk/dist/aws-sdk.min.js'
9
+
8
10
  import dayjs from 'dayjs'
9
- import CloudServ from '../cloudServ'
11
+ import cloudServ from '../cloudServ'
10
12
  import { initServToken } from './servtoken'
11
13
  import { axios, getUser } from '../index'
12
14
  // import { get } from 'lodash-es'
@@ -33,6 +35,13 @@ const getContentType = (suffix: string) => {
33
35
  return map[suffix.toLowerCase()] || ''
34
36
  }
35
37
 
38
+ // 如果url是ip则返回true,是域名则返回false
39
+ const isIpUrl = (url: string) => {
40
+ // 匹配ip的正则表达式
41
+ const reg = /((\w+):\/\/)?(\d+)\.(\d+)\.(\d+)\.(\d+)/
42
+ return reg.test(url)
43
+ }
44
+
36
45
  // interface UrlInfo {
37
46
  // [propName: string]: {
38
47
  // url: string
@@ -71,6 +80,28 @@ interface IDownload {
71
80
  }
72
81
 
73
82
 
83
+ const getNormalizeAliOssCopeMinio = (cope?: Cope) => {
84
+ let copeObj = ''
85
+ if (cope) {
86
+ if (cope === true) {
87
+ copeObj = 'image/resize,m_fixed,w_100,h_100'
88
+ } else if (typeof cope === 'string') {
89
+ // 'image/resize,m_fixed,w_100,h_100'
90
+ copeObj = cope
91
+ } else if (cope.width || cope.height) {
92
+ copeObj = 'image/resize,m_fixed'
93
+ if (cope.width && !cope.height) {
94
+ copeObj += `,w_${cope.width},h_${cope.width}`
95
+ } else if (cope.height && !cope.width) {
96
+ copeObj += `,w_${cope.height},h_${cope.height}`
97
+ } else if (cope.width && cope.height) {
98
+ copeObj += `,w_${cope.width},h_${cope.height}`
99
+ }
100
+ }
101
+ }
102
+ return copeObj
103
+ }
104
+
74
105
  const getNormalizeAliOssCope = (cope?: Cope) => {
75
106
  let copeObj = ''
76
107
  if (cope) {
@@ -92,6 +123,7 @@ const getNormalizeAliOssCope = (cope?: Cope) => {
92
123
  return copeObj
93
124
  }
94
125
 
126
+
95
127
  // 根据文件信息最后生成一个云文件服务可以用的链接http://xxxxx.xxx.jpg
96
128
  const getUrl = async ({
97
129
  type = 'img',
@@ -101,14 +133,13 @@ const getUrl = async ({
101
133
  storagetype = 'storage',
102
134
  cope = ''
103
135
  }: IDownload) => {
104
- const cloudServStorage = CloudServ.get(storagetype)
105
- if (!cloudServStorage) throw Error('无可用存储设置')
136
+ const storageConfig = cloudServ.get(storagetype)
137
+ if (!storageConfig) throw Error('无可用存储设置')
106
138
  const servToken = await initServToken()
107
139
  if (!servToken) throw Error('无可用servToken')
108
140
 
109
- const isAliYun = CloudServ.isAliyun(storagetype)
110
- const isHuawei = CloudServ.isHuawei(storagetype)
111
141
  const tenantCode = getUser('tenantcode')
142
+ const provider = cloudServ.getProvider(storagetype)
112
143
 
113
144
  if (!filename) {
114
145
  filename = source
@@ -117,17 +148,17 @@ const getUrl = async ({
117
148
  const suffix = filename.slice(filename.lastIndexOf('.'))
118
149
  const date = dayjs(+datetime).format('YYYYMMDD')
119
150
  let objectKey = isAbsoluteUrl ? source : `${source.slice(0, 3)}/${type}/${date}/${tenantCode}/${source}`
120
- const copeObj = getNormalizeAliOssCope(cope)
151
+ const copeObj = provider?.isMinio ? getNormalizeAliOssCopeMinio(cope) : getNormalizeAliOssCope(cope)
121
152
  const contentType = getContentType(suffix)
122
153
 
123
- if (isAliYun) {
154
+ if (provider?.isAliyun) {
124
155
  const ossClient = new OSS({
125
- // region: cloudServ.cloudserv_storage_storageendpoint,
126
- endpoint: cloudServStorage.cloudserv_storage_storageendpoint,
156
+ // region: storageConfig.cloudserv_storage_storageendpoint,
157
+ endpoint: storageConfig.cloudserv_storage_storageendpoint,
127
158
  accessKeyId: servToken.accesskeyid,
128
159
  accessKeySecret: servToken.accesskeysecret,
129
160
  stsToken: servToken.securitytoken,
130
- bucket: cloudServStorage.cloudserv_storage_storagebucket,
161
+ bucket: storageConfig.cloudserv_storage_storagebucket,
131
162
  secure: true
132
163
  })
133
164
 
@@ -152,11 +183,11 @@ const getUrl = async ({
152
183
  // }
153
184
 
154
185
  return ossUrl
155
- } else if (isHuawei) {
186
+ } else if (provider?.isHuawei) {
156
187
  const obs = new ObsClient({
157
188
  access_key_id: servToken.accesskeyid,
158
189
  secret_access_key: servToken.accesskeysecret,
159
- server: cloudServStorage.cloudserv_storage_storageendpoint,
190
+ server: storageConfig.cloudserv_storage_storageendpoint,
160
191
  security_token: servToken.securitytoken
161
192
  })
162
193
  // 修复地址里面有//就不能下载了
@@ -166,7 +197,7 @@ const getUrl = async ({
166
197
  try {
167
198
  const Params: IAny = {
168
199
  // Method: 'get',
169
- Bucket: cloudServStorage.cloudserv_storage_storagebucket,
200
+ Bucket: storageConfig.cloudserv_storage_storagebucket,
170
201
  Key: objectKey
171
202
  // Headers: responseHeader
172
203
  // Expires: 3600,
@@ -188,8 +219,52 @@ const getUrl = async ({
188
219
  console.error(e)
189
220
  throw Error(e)
190
221
  }
222
+ } else if (provider?.isMinio) {
223
+ const S3 = window?.AWS?.S3
224
+ const s3Params: IAny = {
225
+ accessKeyId: servToken.accesskeyid,
226
+ secretAccessKey: servToken.accesskeysecret,
227
+ sessionToken: servToken.securitytoken,
228
+ signatureVersion: 'v4',
229
+ endpoint: storageConfig.cloudserv_storage_storageendpoint,
230
+ region: storageConfig.cloudserv_storage_region
231
+ }
232
+ // minio和url为ip的需要将存储桶后置
233
+ if (provider?.isMinio || isIpUrl(storageConfig.cloudserv_storage_storageurl)) {
234
+ s3Params.s3ForcePathStyle = true
235
+ }
236
+ const s3 = new S3(s3Params)
237
+
238
+ // awss3缩略图没方案处理
239
+ const params = {
240
+ Expires: 60 * 60 * 24 * 7,
241
+ Bucket: storageConfig.cloudserv_storage_storagebucket,
242
+ Key: objectKey[0] === '/' ? objectKey.slice(1) : objectKey
243
+ }
244
+
245
+ const getSignedUrlPro = () => {
246
+ return new Promise((resolve, reject) => {
247
+ s3.getSignedUrl('getObject', params, (err: any, data: any) => {
248
+ if (err) {
249
+ console.error(err)
250
+ reject(new Error(err))
251
+ } else {
252
+ if (provider?.isMinio && copeObj) {
253
+ data = `${data}&x-oss-process=${copeObj}`
254
+ // data = `${data}&x-oss-process=image/resize,m_fixed,w_100,h_`
255
+ }
256
+ resolve(data)
257
+ console.log(data)
258
+ }
259
+ })
260
+ })
261
+ }
262
+
263
+ const signedUrl = await getSignedUrlPro()
264
+ // console.log(signedUrl)
265
+ return signedUrl
191
266
  } else {
192
- throw Error('暂不支持非阿里云OSS/华为云OBS存储类型')
267
+ throw Error(`暂不支持${provider?.name}存储类型`)
193
268
  }
194
269
  }
195
270
 
@@ -258,9 +333,8 @@ const downloadFile = async ({
258
333
  // throw Error(e)
259
334
  // })
260
335
 
261
- const isAliYun = CloudServ.isAliyun(storagetype)
262
- // const isHuawei = CloudServ.isHuawei(storagetype)
263
- if (isAliYun) {
336
+ const provider = cloudServ.getProvider(storagetype)
337
+ if (provider?.isAliyun) {
264
338
  downloadFileByUrl(url, filename)
265
339
  } else {
266
340
  axios.get(url, {
@@ -1,17 +1,17 @@
1
1
  interface IMultiUploadOptions {
2
- bucket: string
3
- key: string
4
- partSize?: number
5
- parallel: number
6
- onProgress?: (number: number) => void
2
+ bucket: string
3
+ key: string
4
+ partSize?: number
5
+ parallel: number
6
+ onProgress?: (number: number) => void
7
7
  }
8
8
  interface IUploadPartRes {
9
- PartNumber: number
10
- ETag: string
9
+ PartNumber: number
10
+ ETag: string
11
11
  }
12
12
 
13
13
  interface ITask<T> {
14
- (): Promise<T>
14
+ (): Promise<T>
15
15
  }
16
16
 
17
17
  export const obsMultiUpload = async (obs: any, file: File | Blob, options: IMultiUploadOptions) => {
@@ -90,7 +90,7 @@ export const obsMultiUpload = async (obs: any, file: File | Blob, options: IMult
90
90
  }
91
91
  }
92
92
 
93
- const executeTasks = async <T>(tasks: Array<ITask<T>>, parallel = 3): Promise<Array<T>> => {
93
+ const executeTasks = async <T> (tasks: Array<ITask<T>>, parallel = 3): Promise<Array<T>> => {
94
94
  return new Promise((resolve, reject) => {
95
95
  const todos = tasks.slice(0, parallel)
96
96
  const pendings = tasks.slice(parallel)
@@ -1,14 +1,25 @@
1
1
  import OSS from '../package/ali-oss/aliyun-oss-sdk.apaas.min.js'
2
2
  // const OSS = require('../package/ali-oss/aliyun-oss-sdk.apaas.min.js')
3
+
3
4
  import ObsClient from '../package/huaweicloud-obs/esdk-obs-browserjs.3.22.3.min.js'
4
5
  // const ObsClient = require('../package/huaweicloud-obs/esdk-obs-browserjs.3.22.3.min.js')
5
6
 
7
+ // import '../package/aws-sdk/aws-sdk.min.js'
8
+ import 'aws-sdk/dist/aws-sdk.min.js'
9
+ // var S3 = require('aws-sdk/clients/s3')
10
+ // import S3 from 'aws-sdk/clients/s3'
11
+ // import S3 from 'aws-sdk'
12
+ // import S3 from 'aws-sdk/dist/aws-sdk.js'
13
+ // import * as S3 from 'aws-sdk/dist/aws-sdk.js'
14
+ // import AWS from '../package/aws-sdk/aws-sdk.min.js'
15
+ // import * as AWS from 'aws-sdk'
16
+
6
17
  import { v4 as uuidv4 } from 'uuid'
7
18
  import dayjs from 'dayjs'
8
19
  import co from 'co'
9
20
 
10
21
  import { getUser } from '../index'
11
- import CloudServ from '../cloudServ'
22
+ import cloudServ from '../cloudServ'
12
23
  import { initServToken } from './servtoken'
13
24
  import { obsMultiUpload } from './multiUpload'
14
25
 
@@ -31,13 +42,12 @@ const upload = async ({
31
42
  onprogress,
32
43
  }: IUpload) => {
33
44
  if (!file) throw Error('请传入文件')
34
- const cloudServStorage = CloudServ.get(storagetype)
35
- if (!cloudServStorage) throw Error('无可用存储设置')
45
+ const storageConfig = cloudServ.get(storagetype)
46
+ if (!storageConfig) throw Error('无可用存储设置')
36
47
  const servToken = await initServToken()
37
48
  if (!servToken) throw Error('无可用servToken')
38
49
 
39
- const isAliYun = CloudServ.isAliyun(storagetype)
40
- const isHuawei = CloudServ.isHuawei(storagetype)
50
+ const provider = cloudServ.getProvider(storagetype)
41
51
  const tenantCode = getUser('tenantcode')
42
52
  const suffix = '.' + file.name.substring(file.name.lastIndexOf('.') + 1)
43
53
  source = source ? source : (uuidv4() + suffix)
@@ -48,21 +58,20 @@ const upload = async ({
48
58
  // console.log(file)
49
59
  // console.log(source)
50
60
  // console.log(datetime)
61
+ // console.log(provider)
62
+ // console.log(storageConfig)
63
+ // debugger
51
64
  const promise = new Promise(async (resolve, reject) => {
52
- if (isAliYun) {
65
+ if (provider?.isAliyun) {
53
66
  const ossClient = new OSS({
54
- // region: cloudServ.cloudserv_storage_storageendpoint,
55
- endpoint: cloudServStorage.cloudserv_storage_storageendpoint,
67
+ // region: storageConfig.cloudserv_storage_storageendpoint,
68
+ endpoint: storageConfig.cloudserv_storage_storageendpoint,
56
69
  accessKeyId: servToken.accesskeyid,
57
70
  accessKeySecret: servToken.accesskeysecret,
58
71
  stsToken: servToken.securitytoken,
59
- bucket: cloudServStorage.cloudserv_storage_storagebucket,
72
+ bucket: storageConfig.cloudserv_storage_storagebucket,
60
73
  secure: true
61
74
  })
62
- // promise.cancel = () => {
63
- // ossClient.cancel()
64
- // reject(new Error('Cancel'))
65
- // }
66
75
  co(function* () {
67
76
  yield ossClient.multipartUpload(objectKey, file, {
68
77
  headers: {
@@ -87,22 +96,22 @@ const upload = async ({
87
96
  console.error(error)
88
97
  reject(error)
89
98
  })
90
- } else if (isHuawei) {
99
+ } else if (provider?.isHuawei) {
91
100
  const obs = new ObsClient({
92
101
  access_key_id: servToken.accesskeyid,
93
102
  secret_access_key: servToken.accesskeysecret,
94
- server: cloudServStorage.cloudserv_storage_storageendpoint,
103
+ server: storageConfig.cloudserv_storage_storageendpoint,
95
104
  security_token: servToken.securitytoken
96
105
  })
97
106
  // const obs = new ObsClient({
98
107
  // access_key_id: '75ISL4GWAOOO1USWUMRG',
99
108
  // secret_access_key: 'srn6eJ1BpFbjxoFrJgiQjeS65Z3eKC3rnqeyBBlL',
100
- // server: cloudServ.cloudserv_storage_storageendpoint,
109
+ // server: storageConfig.cloudserv_storage_storageendpoint,
101
110
  // security_token: 'gQ5jbi1zb3V0aHdlc3QtMogAsKjYcI5CQldRAvQQJysdkZ7tAt6arLsoWHFGCaco8s8FPk6wtbslHWhvg2SZh3QMM4aUA4FhPEWQt9A7gXoC_Lh4DpF6hhHIxUyACKgakNHNPdPegy5G9-sibBXkGueIY1X3K12tzpjbyd08esLKEEu-M_QmfDoDdkgOcyidITc-lOg5EzXb27f91Ym26u2mAMTaNjCLRulJ4rziLSW6IAprSx8LUkuQQE-wUz-tMzVL9oFiVykHz980o0Y0CNdCIwn98Y-xbMdslZ3U8raydy6Wnf2LchXc0ajvMix0gg-CV0tpA4cgiZFqPxwEDXSv42hvfccboWlpGmOVR3llHLUirrlgFod8rhm-Rmk6MIfQw4NA8rddow1Gx6g-MugFV5arMDLfsOhqeSFQRJWizb3q50zk6GcUFulewitxP8HSkXMGt_rDDYCcCEmdu15D3imX5431Mbdt0qCgxH80OPCDmFXw0xMOsggxE0PBVexVY2x3wHGeql3JNyevUZAhqlskNNu77ui2Vnp-ZbHMcxgDLcPuAULINId4V_QGdhAkDaxQk53AE237DAFXtlyWWaBRMsTNVnpq9mCXJup9pdBbjLRVAO4OxfYVnwwvl-w_mb-xCgOf5EPHqA_zbZF8z-ad6JjWgLOQCHaawE7kNGHIQwAgzneik33wP2jPlG1ak9KEWyXr1n2QMJCmDM3bIrRit5_8LLFoPjXcwurBjZ-AomM_ztOe34sdr357atlQcPD7a2xWtrvn9mnqqndg12m7QxnwkmJsOYK4ZO5Hoyb2vd_NX2Nd9PaSIVAcFw=='
102
111
  // })
103
112
  try {
104
113
  const uploadRes = await obsMultiUpload(obs, file, {
105
- bucket: cloudServStorage.cloudserv_storage_storagebucket,
114
+ bucket: storageConfig.cloudserv_storage_storagebucket,
106
115
  key: objectKey,
107
116
  parallel: 3,
108
117
  onProgress: (percent: number) => {
@@ -133,8 +142,49 @@ const upload = async ({
133
142
  // console.log(result)
134
143
  // debugger
135
144
  // })
145
+ } else if (provider?.isMinio || provider?.isAwss3) {
146
+ // console.error(9874)
147
+ // console.log(S3)
148
+ // console.log(window.AWS)
149
+ const S3 = window?.AWS?.S3
150
+ // debugger
151
+ // debugger
152
+ const s3 = new S3({
153
+ accessKeyId: servToken.accesskeyid,
154
+ secretAccessKey: servToken.accesskeysecret,
155
+ sessionToken: servToken.securitytoken,
156
+ region: storageConfig.cloudserv_storage_region,
157
+ endpoint: storageConfig.cloudserv_storage_storageendpoint,
158
+ signatureVersion: 'v4',
159
+ s3ForcePathStyle: provider?.isMinio ? true : undefined
160
+ })
161
+ const params = {
162
+ Bucket: storageConfig.cloudserv_storage_storagebucket,
163
+ Key: objectKey,
164
+ Body: file
165
+ }
166
+ const upload = s3.upload(params, {}).on('httpUploadProgress', (e: any) => {
167
+ const precent: any = parseInt(e.loaded, 10) / parseInt(e.total, 10)
168
+ // console.log('httpUploadProgress', e)
169
+ onprogress && onprogress(precent.toFixed(2))
170
+ })
171
+ upload.send((err: any, data: any) => {
172
+ if (err) {
173
+ console.error(err)
174
+ reject(err)
175
+ } else {
176
+ resolve({
177
+ source,
178
+ filename: file.name,
179
+ type: file.type,
180
+ date: date,
181
+ datetime: datetime,
182
+ file
183
+ })
184
+ }
185
+ })
136
186
  } else {
137
- throw Error('暂不支持非阿里云OSS/华为云OBS存储类型')
187
+ throw Error(`暂不支持${provider?.name}存储类型`)
138
188
  }
139
189
  })
140
190
 
@@ -51,3 +51,10 @@ interface ITenantInfo {
51
51
  cloudserv: ICloudServ
52
52
  productversionlist: IProductVersion[]
53
53
  }
54
+
55
+ interface Window {
56
+ AWS: any;
57
+ }
58
+
59
+ declare module 'uuid'
60
+ declare module 'co'
@@ -96,3 +96,5 @@ export const Module: any
96
96
  export const components: any
97
97
  export const expandexp: (options: any) => void
98
98
  export const wxworkSuite: any
99
+ export const isdebugger: () => boolean
100
+ export const isvirtuallocation: () => boolean
package/src/urlquery.ts CHANGED
@@ -54,4 +54,6 @@ class Urlquery {
54
54
  // }
55
55
  }
56
56
 
57
- export default new Urlquery()
57
+ const urlquery = new Urlquery()
58
+
59
+ export default urlquery
package/src/utils.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { getUser } from './index'
2
+ import urlquery from './urlquery'
2
3
 
3
4
  const isIOS = () => {
4
5
  const ua = navigator.userAgent
@@ -61,11 +62,21 @@ const isInApp = (): boolean => {
61
62
  }
62
63
  }
63
64
 
65
+ const isdebugger = (): boolean => {
66
+ return urlquery.isdebugger
67
+ }
68
+
69
+ const isvirtuallocation = (): boolean => {
70
+ return urlquery.isvirtuallocation
71
+ }
72
+
64
73
  export {
65
74
  isIOS,
66
75
  getUniqueid,
67
76
  functionCheck,
68
77
  setTitle,
69
78
  getSpuContainerType,
70
- isInApp
79
+ isInApp,
80
+ isdebugger,
81
+ isvirtuallocation
71
82
  }