giime 0.4.4 → 0.4.5
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/dist/index.css +64 -28
- package/es/api/materialApi/cross/getAdFileExist.d.ts +21 -0
- package/es/api/materialApi/cross/getAdFileExist.mjs +8 -0
- package/es/api/materialApi/cross/getAdFileExist.mjs.map +1 -0
- package/es/api/materialApi/cross/getOssAccessToken.d.ts +17 -0
- package/es/api/materialApi/cross/getOssAccessToken.mjs +8 -0
- package/es/api/materialApi/cross/getOssAccessToken.mjs.map +1 -0
- package/es/api/materialApi/cross/index.d.ts +2 -0
- package/es/api/materialApi/cross/index.mjs +3 -0
- package/es/api/materialApi/cross/index.mjs.map +1 -0
- package/es/api/materialApi/index.d.ts +1 -0
- package/es/api/materialApi/index.mjs +4 -0
- package/es/api/materialApi/index.mjs.map +1 -0
- package/es/api/materialApi/request.d.ts +2 -0
- package/es/api/materialApi/request.mjs +18 -0
- package/es/api/materialApi/request.mjs.map +1 -0
- package/es/api/utils/resetAxiosBaseUrl.mjs +0 -1
- package/es/api/utils/resetAxiosBaseUrl.mjs.map +1 -1
- package/es/components/index.mjs +2 -0
- package/es/components/index.mjs.map +1 -1
- package/es/components/src/business/index.d.ts +1 -0
- package/es/components/src/business/index.mjs +2 -0
- package/es/components/src/business/index.mjs.map +1 -1
- package/es/components/src/business/uploadMaterial/UploadMaterial.vue.d.ts +306 -0
- package/es/components/src/business/uploadMaterial/UploadMaterial.vue.mjs +9 -0
- package/es/components/src/business/uploadMaterial/UploadMaterial.vue.mjs.map +1 -0
- package/es/components/src/business/uploadMaterial/UploadMaterial.vue2.mjs +184 -0
- package/es/components/src/business/uploadMaterial/UploadMaterial.vue2.mjs.map +1 -0
- package/es/components/src/business/uploadMaterial/UploadMaterial.vue3.mjs +4 -0
- package/es/components/src/business/uploadMaterial/UploadMaterial.vue3.mjs.map +1 -0
- package/es/components/src/business/uploadMaterial/UploadMaterial.vue4.mjs +4 -0
- package/es/components/src/business/uploadMaterial/UploadMaterial.vue4.mjs.map +1 -0
- package/es/components/src/business/uploadMaterial/index.d.ts +308 -0
- package/es/components/src/business/uploadMaterial/index.mjs +9 -0
- package/es/components/src/business/uploadMaterial/index.mjs.map +1 -0
- package/es/components/src/business/uploadMaterial/uploadMaterial.d.ts +138 -0
- package/es/components/src/business/uploadMaterial/uploadMaterial.mjs +37 -0
- package/es/components/src/business/uploadMaterial/uploadMaterial.mjs.map +1 -0
- package/es/components/src/composite/dialogForm/DialogForm.vue.d.ts +1 -1
- package/es/components/src/composite/dialogForm/index.d.ts +4 -4
- package/es/components/src/composite/drawerForm/DrawerForm.vue.d.ts +1 -1
- package/es/components/src/composite/drawerForm/index.d.ts +4 -4
- package/es/components/src/composite/memoryForm/MemoryForm.vue.d.ts +1 -1
- package/es/components/src/composite/memoryForm/index.d.ts +4 -4
- package/es/components/src/plugins/message/index.mjs +1 -2
- package/es/components/src/plugins/message/index.mjs.map +1 -1
- package/es/components/src/plugins/message/method.mjs +1 -2
- package/es/components/src/plugins/message/method.mjs.map +1 -1
- package/es/giime/component.mjs +3 -1
- package/es/giime/component.mjs.map +1 -1
- package/es/giime/index.mjs +5 -1
- package/es/giime/index.mjs.map +1 -1
- package/es/giime/version.d.ts +1 -1
- package/es/giime/version.mjs +1 -1
- package/es/giime/version.mjs.map +1 -1
- package/es/hooks/base/useGlobalConfig/index.mjs +0 -1
- package/es/hooks/base/useGlobalConfig/index.mjs.map +1 -1
- package/es/hooks/store/useAliossStsToken/index.d.ts +16 -0
- package/es/hooks/store/useAliossStsToken/index.mjs +53 -0
- package/es/hooks/store/useAliossStsToken/index.mjs.map +1 -0
- package/es/hooks/store/useLangList/index.d.ts +1 -1
- package/es/index.css +64 -28
- package/es/utils/index.d.ts +1 -0
- package/es/utils/index.mjs +4 -1
- package/es/utils/index.mjs.map +1 -1
- package/es/utils/src/alioss.d.ts +14 -0
- package/es/utils/src/alioss.mjs +104 -0
- package/es/utils/src/alioss.mjs.map +1 -0
- package/es/utils/src/crypto/index.d.ts +2 -0
- package/es/utils/src/crypto/index.mjs +3 -0
- package/es/utils/src/crypto/index.mjs.map +1 -0
- package/es/utils/src/crypto/md5.d.ts +7 -0
- package/es/utils/src/crypto/md5.mjs +190 -0
- package/es/utils/src/crypto/md5.mjs.map +1 -0
- package/es/utils/src/crypto/sha1.d.ts +6 -0
- package/es/utils/src/crypto/sha1.mjs +193 -0
- package/es/utils/src/crypto/sha1.mjs.map +1 -0
- package/es/utils/src/is.d.ts +12 -0
- package/es/utils/src/is.mjs +9 -1
- package/es/utils/src/is.mjs.map +1 -1
- package/global.d.ts +1 -0
- package/lib/api/materialApi/cross/getAdFileExist.d.ts +21 -0
- package/lib/api/materialApi/cross/getAdFileExist.js +10 -0
- package/lib/api/materialApi/cross/getAdFileExist.js.map +1 -0
- package/lib/api/materialApi/cross/getOssAccessToken.d.ts +17 -0
- package/lib/api/materialApi/cross/getOssAccessToken.js +10 -0
- package/lib/api/materialApi/cross/getOssAccessToken.js.map +1 -0
- package/lib/api/materialApi/cross/index.d.ts +2 -0
- package/lib/api/materialApi/cross/index.js +10 -0
- package/lib/api/materialApi/cross/index.js.map +1 -0
- package/lib/api/materialApi/index.d.ts +1 -0
- package/lib/api/materialApi/index.js +11 -0
- package/lib/api/materialApi/index.js.map +1 -0
- package/lib/api/materialApi/request.d.ts +2 -0
- package/lib/api/materialApi/request.js +22 -0
- package/lib/api/materialApi/request.js.map +1 -0
- package/lib/api/utils/resetAxiosBaseUrl.js +0 -1
- package/lib/api/utils/resetAxiosBaseUrl.js.map +1 -1
- package/lib/components/index.js +60 -56
- package/lib/components/index.js.map +1 -1
- package/lib/components/src/business/index.d.ts +1 -0
- package/lib/components/src/business/index.js +4 -0
- package/lib/components/src/business/index.js.map +1 -1
- package/lib/components/src/business/uploadMaterial/UploadMaterial.vue.d.ts +306 -0
- package/lib/components/src/business/uploadMaterial/UploadMaterial.vue.js +13 -0
- package/lib/components/src/business/uploadMaterial/UploadMaterial.vue.js.map +1 -0
- package/lib/components/src/business/uploadMaterial/UploadMaterial.vue2.js +188 -0
- package/lib/components/src/business/uploadMaterial/UploadMaterial.vue2.js.map +1 -0
- package/lib/components/src/business/uploadMaterial/UploadMaterial.vue3.js +8 -0
- package/lib/components/src/business/uploadMaterial/UploadMaterial.vue3.js.map +1 -0
- package/lib/components/src/business/uploadMaterial/UploadMaterial.vue4.js +8 -0
- package/lib/components/src/business/uploadMaterial/UploadMaterial.vue4.js.map +1 -0
- package/lib/components/src/business/uploadMaterial/index.d.ts +308 -0
- package/lib/components/src/business/uploadMaterial/index.js +15 -0
- package/lib/components/src/business/uploadMaterial/index.js.map +1 -0
- package/lib/components/src/business/uploadMaterial/uploadMaterial.d.ts +138 -0
- package/lib/components/src/business/uploadMaterial/uploadMaterial.js +39 -0
- package/lib/components/src/business/uploadMaterial/uploadMaterial.js.map +1 -0
- package/lib/components/src/composite/dialogForm/DialogForm.vue.d.ts +1 -1
- package/lib/components/src/composite/dialogForm/index.d.ts +4 -4
- package/lib/components/src/composite/drawerForm/DrawerForm.vue.d.ts +1 -1
- package/lib/components/src/composite/drawerForm/index.d.ts +4 -4
- package/lib/components/src/composite/memoryForm/MemoryForm.vue.d.ts +1 -1
- package/lib/components/src/composite/memoryForm/index.d.ts +4 -4
- package/lib/components/src/plugins/message/index.js +1 -2
- package/lib/components/src/plugins/message/index.js.map +1 -1
- package/lib/components/src/plugins/message/method.js +1 -2
- package/lib/components/src/plugins/message/method.js.map +1 -1
- package/lib/giime/component.js +3 -1
- package/lib/giime/component.js.map +1 -1
- package/lib/giime/index.js +123 -102
- package/lib/giime/index.js.map +1 -1
- package/lib/giime/version.d.ts +1 -1
- package/lib/giime/version.js +1 -1
- package/lib/giime/version.js.map +1 -1
- package/lib/hooks/base/useGlobalConfig/index.js +0 -1
- package/lib/hooks/base/useGlobalConfig/index.js.map +1 -1
- package/lib/hooks/store/useAliossStsToken/index.d.ts +16 -0
- package/lib/hooks/store/useAliossStsToken/index.js +55 -0
- package/lib/hooks/store/useAliossStsToken/index.js.map +1 -0
- package/lib/hooks/store/useLangList/index.d.ts +1 -1
- package/lib/index.css +64 -28
- package/lib/utils/index.d.ts +1 -0
- package/lib/utils/index.js +18 -0
- package/lib/utils/index.js.map +1 -1
- package/lib/utils/src/alioss.d.ts +14 -0
- package/lib/utils/src/alioss.js +107 -0
- package/lib/utils/src/alioss.js.map +1 -0
- package/lib/utils/src/crypto/index.d.ts +2 -0
- package/lib/utils/src/crypto/index.js +21 -0
- package/lib/utils/src/crypto/index.js.map +1 -0
- package/lib/utils/src/crypto/md5.d.ts +7 -0
- package/lib/utils/src/crypto/md5.js +198 -0
- package/lib/utils/src/crypto/md5.js.map +1 -0
- package/lib/utils/src/crypto/sha1.d.ts +6 -0
- package/lib/utils/src/crypto/sha1.js +200 -0
- package/lib/utils/src/crypto/sha1.js.map +1 -0
- package/lib/utils/src/is.d.ts +12 -0
- package/lib/utils/src/is.js +10 -0
- package/lib/utils/src/is.js.map +1 -1
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../../../../packages/hooks/base/useGlobalConfig/index.ts"],"sourcesContent":["import { computed, getCurrentInstance, inject, provide, ref, unref } from 'vue';\r\nimport { ImportMetaEnvKey, configProviderContextKey } from '@giime/constants/key';\r\nimport { keysOf } from '@giime/utils';\r\nimport type { ConfigProviderContext } from '@giime/constants/key';\r\nimport type { App, MaybeRef, Ref } from 'vue';\r\n\r\nconst globalConfig = ref<ConfigProviderContext>();\r\n\r\nexport function useGlobalConfig<K extends keyof ConfigProviderContext, D extends ConfigProviderContext[K]>(\r\n key: K,\r\n defaultValue?: D,\r\n): Ref<Exclude<ConfigProviderContext[K], undefined> | D>;\r\nexport function useGlobalConfig(): Ref<ConfigProviderContext>;\r\nexport function useGlobalConfig(key?: keyof ConfigProviderContext, defaultValue = undefined) {\r\n const config = getCurrentInstance() ? inject(configProviderContextKey, globalConfig) : globalConfig;\r\n if (key) {\r\n return computed(() => config.value?.[key] ?? defaultValue);\r\n } else {\r\n return config;\r\n }\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\nexport const provideGlobalConfig = (config: MaybeRef<Partial<ConfigProviderContext>>, app?: App, global = false) => {\r\n const inSetup = !!getCurrentInstance();\r\n const oldConfig = inSetup ? useGlobalConfig() : undefined;\r\n const provideFn = app?.provide ?? (inSetup ? provide : undefined);\r\n if (!provideFn) {\r\n return;\r\n }\r\n const context = computed(() => {\r\n const cfg = unref(config) ?? {};\r\n if (!oldConfig?.value) return cfg as ConfigProviderContext;\r\n return mergeConfig(oldConfig.value, cfg);\r\n });\r\n if (app?.provide) {\r\n app.provide(configProviderContextKey, context);\r\n } else if (inSetup) {\r\n provide(configProviderContextKey, context);\r\n }\r\n // provideFn?.(configProviderContextKey, context);\r\n\r\n if (global || !globalConfig.value) {\r\n globalConfig.value = context.value;\r\n }\r\n\r\n if (app?.provide) {\r\n app.provide(ImportMetaEnvKey, context.value.env);\r\n } else if (inSetup) {\r\n provide(ImportMetaEnvKey, context.value.env);\r\n }\r\n // provideFn(ImportMetaEnvKey, context.value.env);\r\n return context;\r\n};\r\n\r\nconst mergeConfig = (a: ConfigProviderContext, b: Partial<ConfigProviderContext>) => {\r\n const keys = [...new Set([...keysOf(a), ...keysOf(b)])];\r\n const obj: Record<string, any> = {};\r\n for (const key of keys) {\r\n obj[key] = b[key] ?? a[key];\r\n }\r\n return obj as ConfigProviderContext;\r\n};\r\n"],"names":["ref","key","getCurrentInstance","inject","configProviderContextKey","computed","provide","unref","ImportMetaEnvKey","keysOf"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../packages/hooks/base/useGlobalConfig/index.ts"],"sourcesContent":["import { computed, getCurrentInstance, inject, provide, ref, unref } from 'vue';\r\nimport { ImportMetaEnvKey, configProviderContextKey } from '@giime/constants/key';\r\nimport { keysOf } from '@giime/utils/src/objects';\r\nimport type { ConfigProviderContext } from '@giime/constants/key';\r\nimport type { App, MaybeRef, Ref } from 'vue';\r\n\r\nconst globalConfig = ref<ConfigProviderContext>();\r\n\r\nexport function useGlobalConfig<K extends keyof ConfigProviderContext, D extends ConfigProviderContext[K]>(\r\n key: K,\r\n defaultValue?: D,\r\n): Ref<Exclude<ConfigProviderContext[K], undefined> | D>;\r\nexport function useGlobalConfig(): Ref<ConfigProviderContext>;\r\nexport function useGlobalConfig(key?: keyof ConfigProviderContext, defaultValue = undefined) {\r\n const config = getCurrentInstance() ? inject(configProviderContextKey, globalConfig) : globalConfig;\r\n if (key) {\r\n return computed(() => config.value?.[key] ?? defaultValue);\r\n } else {\r\n return config;\r\n }\r\n}\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\nexport const provideGlobalConfig = (config: MaybeRef<Partial<ConfigProviderContext>>, app?: App, global = false) => {\r\n const inSetup = !!getCurrentInstance();\r\n const oldConfig = inSetup ? useGlobalConfig() : undefined;\r\n const provideFn = app?.provide ?? (inSetup ? provide : undefined);\r\n if (!provideFn) {\r\n return;\r\n }\r\n const context = computed(() => {\r\n const cfg = unref(config) ?? {};\r\n if (!oldConfig?.value) return cfg as ConfigProviderContext;\r\n return mergeConfig(oldConfig.value, cfg);\r\n });\r\n if (app?.provide) {\r\n app.provide(configProviderContextKey, context);\r\n } else if (inSetup) {\r\n provide(configProviderContextKey, context);\r\n }\r\n // provideFn?.(configProviderContextKey, context);\r\n\r\n if (global || !globalConfig.value) {\r\n globalConfig.value = context.value;\r\n }\r\n\r\n if (app?.provide) {\r\n app.provide(ImportMetaEnvKey, context.value.env);\r\n } else if (inSetup) {\r\n provide(ImportMetaEnvKey, context.value.env);\r\n }\r\n // provideFn(ImportMetaEnvKey, context.value.env);\r\n return context;\r\n};\r\n\r\nconst mergeConfig = (a: ConfigProviderContext, b: Partial<ConfigProviderContext>) => {\r\n const keys = [...new Set([...keysOf(a), ...keysOf(b)])];\r\n const obj: Record<string, any> = {};\r\n for (const key of keys) {\r\n obj[key] = b[key] ?? a[key];\r\n }\r\n return obj as ConfigProviderContext;\r\n};\r\n"],"names":["ref","key","getCurrentInstance","inject","configProviderContextKey","computed","provide","unref","ImportMetaEnvKey","keysOf"],"mappings":";;;;;;AAMA,MAAM,eAAeA,OAA2B,EAAA,CAAA;AAOhC,SAAA,eAAA,CAAgBC,KAAmC,EAAA,YAAA,GAAe,KAAW,CAAA,EAAA;AAC3F,EAAA,MAAM,SAASC,sBAAmB,EAAA,GAAIC,UAAO,CAAAC,4BAAA,EAA0B,YAAY,CAAI,GAAA,YAAA,CAAA;AACvF,EAAA,IAAIH,KAAK,EAAA;AACP,IAAA,OAAOI,aAAS,MAAM,MAAA,CAAO,KAAQ,GAAAJ,KAAG,KAAK,YAAY,CAAA,CAAA;AAAA,GACpD,MAAA;AACL,IAAO,OAAA,MAAA,CAAA;AAAA,GACT;AACF,CAAA;AAGO,MAAM,mBAAsB,GAAA,CAAC,MAAkD,EAAA,GAAA,EAAW,SAAS,KAAU,KAAA;AAClH,EAAM,MAAA,OAAA,GAAU,CAAC,CAACC,sBAAmB,EAAA,CAAA;AACrC,EAAM,MAAA,SAAA,GAAY,OAAU,GAAA,eAAA,EAAoB,GAAA,KAAA,CAAA,CAAA;AAChD,EAAA,MAAM,SAAY,GAAA,GAAA,EAAK,OAAY,KAAA,OAAA,GAAUI,WAAU,GAAA,KAAA,CAAA,CAAA,CAAA;AACvD,EAAA,IAAI,CAAC,SAAW,EAAA;AACd,IAAA,OAAA;AAAA,GACF;AACA,EAAM,MAAA,OAAA,GAAUD,aAAS,MAAM;AAC7B,IAAA,MAAM,GAAM,GAAAE,SAAA,CAAM,MAAM,CAAA,IAAK,EAAC,CAAA;AAC9B,IAAA,IAAI,CAAC,SAAW,EAAA,KAAA;AAAO,MAAO,OAAA,GAAA,CAAA;AAC9B,IAAO,OAAA,WAAA,CAAY,SAAU,CAAA,KAAA,EAAO,GAAG,CAAA,CAAA;AAAA,GACxC,CAAA,CAAA;AACD,EAAA,IAAI,KAAK,OAAS,EAAA;AAChB,IAAI,GAAA,CAAA,OAAA,CAAQH,8BAA0B,OAAO,CAAA,CAAA;AAAA,aACpC,OAAS,EAAA;AAClB,IAAAE,WAAA,CAAQF,8BAA0B,OAAO,CAAA,CAAA;AAAA,GAC3C;AAGA,EAAI,IAAA,MAAA,IAAU,CAAC,YAAA,CAAa,KAAO,EAAA;AACjC,IAAA,YAAA,CAAa,QAAQ,OAAQ,CAAA,KAAA,CAAA;AAAA,GAC/B;AAEA,EAAA,IAAI,KAAK,OAAS,EAAA;AAChB,IAAA,GAAA,CAAI,OAAQ,CAAAI,oBAAA,EAAkB,OAAQ,CAAA,KAAA,CAAM,GAAG,CAAA,CAAA;AAAA,aACtC,OAAS,EAAA;AAClB,IAAQF,WAAA,CAAAE,oBAAA,EAAkB,OAAQ,CAAA,KAAA,CAAM,GAAG,CAAA,CAAA;AAAA,GAC7C;AAEA,EAAO,OAAA,OAAA,CAAA;AACT,EAAA;AAEA,MAAM,WAAA,GAAc,CAAC,CAAA,EAA0B,CAAsC,KAAA;AACnF,EAAA,MAAM,IAAO,GAAA,CAAC,mBAAG,IAAI,IAAI,CAAC,GAAGC,cAAO,CAAA,CAAC,GAAG,GAAGA,cAAA,CAAO,CAAC,CAAC,CAAC,CAAC,CAAA,CAAA;AACtD,EAAA,MAAM,MAA2B,EAAC,CAAA;AAClC,EAAA,KAAA,MAAW,OAAO,IAAM,EAAA;AACtB,IAAA,GAAA,CAAI,GAAG,CAAI,GAAA,CAAA,CAAE,GAAG,CAAA,IAAK,EAAE,GAAG,CAAA,CAAA;AAAA,GAC5B;AACA,EAAO,OAAA,GAAA,CAAA;AACT,CAAA;;;;;"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { GetOssAccessTokenResponseData } from '../../../api/materialApi';
|
|
2
|
+
/**
|
|
3
|
+
* @description 素材上传权限
|
|
4
|
+
* @param {*}
|
|
5
|
+
* @return {*}
|
|
6
|
+
**/
|
|
7
|
+
export declare const useAliossStsTokenStore: import("pinia").StoreDefinition<"gmAliossStsToken", import("pinia")._UnwrapAll<Pick<{
|
|
8
|
+
isLoading: import("vue").Ref<boolean>;
|
|
9
|
+
getAliossStsTokenAsync: () => Promise<GetOssAccessTokenResponseData>;
|
|
10
|
+
}, "isLoading">>, Pick<{
|
|
11
|
+
isLoading: import("vue").Ref<boolean>;
|
|
12
|
+
getAliossStsTokenAsync: () => Promise<GetOssAccessTokenResponseData>;
|
|
13
|
+
}, never>, Pick<{
|
|
14
|
+
isLoading: import("vue").Ref<boolean>;
|
|
15
|
+
getAliossStsTokenAsync: () => Promise<GetOssAccessTokenResponseData>;
|
|
16
|
+
}, "getAliossStsTokenAsync">>;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var vue = require('vue');
|
|
4
|
+
var pinia = require('pinia');
|
|
5
|
+
require('../../../api/materialApi/index.js');
|
|
6
|
+
var core = require('@vueuse/core');
|
|
7
|
+
var Cookies = require('js-cookie');
|
|
8
|
+
var getOssAccessToken = require('../../../api/materialApi/cross/getOssAccessToken.js');
|
|
9
|
+
|
|
10
|
+
const useAliossStsTokenStore = pinia.defineStore("gmAliossStsToken", () => {
|
|
11
|
+
const isLoading = vue.ref(false);
|
|
12
|
+
const aliossStsTokenResult = core.createEventHook();
|
|
13
|
+
const setCookie = (data) => {
|
|
14
|
+
if (!data)
|
|
15
|
+
return;
|
|
16
|
+
const { Expiration } = data;
|
|
17
|
+
const time = new Date(new Date(Expiration ?? 0).getTime() - 1e4);
|
|
18
|
+
Cookies.set("aliossStsToken", JSON.stringify(data), { expires: time });
|
|
19
|
+
};
|
|
20
|
+
const getAliossStsToken = async () => {
|
|
21
|
+
const aliossStsToken = Cookies.get("aliossStsToken");
|
|
22
|
+
if (aliossStsToken) {
|
|
23
|
+
return JSON.parse(aliossStsToken);
|
|
24
|
+
}
|
|
25
|
+
isLoading.value = true;
|
|
26
|
+
try {
|
|
27
|
+
const { data } = await getOssAccessToken.getOssAccessToken();
|
|
28
|
+
if (data.code === 0) {
|
|
29
|
+
setCookie(data.data);
|
|
30
|
+
aliossStsTokenResult.trigger(data.data);
|
|
31
|
+
}
|
|
32
|
+
return data.data;
|
|
33
|
+
} finally {
|
|
34
|
+
isLoading.value = false;
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
const onAliossStsTokenPromise = () => {
|
|
38
|
+
return new Promise(async (resolve) => {
|
|
39
|
+
aliossStsTokenResult.on((value) => resolve(value));
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
const getAliossStsTokenAsync = () => {
|
|
43
|
+
if (isLoading.value) {
|
|
44
|
+
return onAliossStsTokenPromise();
|
|
45
|
+
}
|
|
46
|
+
return getAliossStsToken();
|
|
47
|
+
};
|
|
48
|
+
return {
|
|
49
|
+
isLoading,
|
|
50
|
+
getAliossStsTokenAsync
|
|
51
|
+
};
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
exports.useAliossStsTokenStore = useAliossStsTokenStore;
|
|
55
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../../../../packages/hooks/store/useAliossStsToken/index.ts"],"sourcesContent":["import { ref } from 'vue';\r\nimport { defineStore } from 'pinia';\r\nimport { getOssAccessToken } from '@giime/api/materialApi';\r\nimport { createEventHook } from '@vueuse/core';\r\nimport Cookies from 'js-cookie';\r\nimport type { GetOssAccessTokenResponseData } from '@giime/api/materialApi';\r\n\r\n/**\r\n * @description 素材上传权限\r\n * @param {*}\r\n * @return {*}\r\n **/\r\n\r\nexport const useAliossStsTokenStore = defineStore('gmAliossStsToken', () => {\r\n const isLoading = ref(false);\r\n const aliossStsTokenResult = createEventHook<GetOssAccessTokenResponseData>();\r\n\r\n const setCookie = (data: GetOssAccessTokenResponseData) => {\r\n if (!data) return;\r\n const { Expiration } = data;\r\n const time = new Date(new Date(Expiration ?? 0).getTime() - 10000); //-10秒作为缓冲\r\n Cookies.set('aliossStsToken', JSON.stringify(data), { expires: time });\r\n };\r\n\r\n /* 请求临时上传权限 */\r\n const getAliossStsToken = async () => {\r\n const aliossStsToken = Cookies.get('aliossStsToken');\r\n if (aliossStsToken) {\r\n return JSON.parse(aliossStsToken) as GetOssAccessTokenResponseData;\r\n }\r\n isLoading.value = true;\r\n try {\r\n const { data } = await getOssAccessToken();\r\n if (data.code === 0) {\r\n setCookie(data.data);\r\n aliossStsTokenResult.trigger(data.data);\r\n }\r\n\r\n return data.data;\r\n } finally {\r\n isLoading.value = false;\r\n }\r\n };\r\n\r\n /* 监听获取 alioss sts token 成功 promise版 */\r\n const onAliossStsTokenPromise = () => {\r\n return new Promise<GetOssAccessTokenResponseData>(async resolve => {\r\n aliossStsTokenResult.on(value => resolve(value));\r\n });\r\n };\r\n\r\n /* 获取 alioss 临时上传 token*/\r\n const getAliossStsTokenAsync = () => {\r\n /* 若正在请求请求临时token接口 则其他后进来的等待 */\r\n if (isLoading.value) {\r\n return onAliossStsTokenPromise();\r\n }\r\n return getAliossStsToken();\r\n };\r\n\r\n return {\r\n isLoading,\r\n getAliossStsTokenAsync,\r\n };\r\n});\r\n"],"names":["defineStore","ref","createEventHook","getOssAccessToken"],"mappings":";;;;;;;;;AAaa,MAAA,sBAAA,GAAyBA,iBAAY,CAAA,kBAAA,EAAoB,MAAM;AAC1E,EAAM,MAAA,SAAA,GAAYC,QAAI,KAAK,CAAA,CAAA;AAC3B,EAAA,MAAM,uBAAuBC,oBAA+C,EAAA,CAAA;AAE5E,EAAM,MAAA,SAAA,GAAY,CAAC,IAAwC,KAAA;AACzD,IAAA,IAAI,CAAC,IAAA;AAAM,MAAA,OAAA;AACX,IAAM,MAAA,EAAE,YAAe,GAAA,IAAA,CAAA;AACvB,IAAM,MAAA,IAAA,GAAO,IAAI,IAAA,CAAK,IAAI,IAAA,CAAK,cAAc,CAAC,CAAA,CAAE,OAAQ,EAAA,GAAI,GAAK,CAAA,CAAA;AACjE,IAAQ,OAAA,CAAA,GAAA,CAAI,kBAAkB,IAAK,CAAA,SAAA,CAAU,IAAI,CAAG,EAAA,EAAE,OAAS,EAAA,IAAA,EAAM,CAAA,CAAA;AAAA,GACvE,CAAA;AAGA,EAAA,MAAM,oBAAoB,YAAY;AACpC,IAAM,MAAA,cAAA,GAAiB,OAAQ,CAAA,GAAA,CAAI,gBAAgB,CAAA,CAAA;AACnD,IAAA,IAAI,cAAgB,EAAA;AAClB,MAAO,OAAA,IAAA,CAAK,MAAM,cAAc,CAAA,CAAA;AAAA,KAClC;AACA,IAAA,SAAA,CAAU,KAAQ,GAAA,IAAA,CAAA;AAClB,IAAI,IAAA;AACF,MAAA,MAAM,EAAE,IAAA,EAAS,GAAA,MAAMC,mCAAkB,EAAA,CAAA;AACzC,MAAI,IAAA,IAAA,CAAK,SAAS,CAAG,EAAA;AACnB,QAAA,SAAA,CAAU,KAAK,IAAI,CAAA,CAAA;AACnB,QAAqB,oBAAA,CAAA,OAAA,CAAQ,KAAK,IAAI,CAAA,CAAA;AAAA,OACxC;AAEA,MAAA,OAAO,IAAK,CAAA,IAAA,CAAA;AAAA,KACZ,SAAA;AACA,MAAA,SAAA,CAAU,KAAQ,GAAA,KAAA,CAAA;AAAA,KACpB;AAAA,GACF,CAAA;AAGA,EAAA,MAAM,0BAA0B,MAAM;AACpC,IAAO,OAAA,IAAI,OAAuC,CAAA,OAAM,OAAW,KAAA;AACjE,MAAA,oBAAA,CAAqB,EAAG,CAAA,CAAA,KAAA,KAAS,OAAQ,CAAA,KAAK,CAAC,CAAA,CAAA;AAAA,KAChD,CAAA,CAAA;AAAA,GACH,CAAA;AAGA,EAAA,MAAM,yBAAyB,MAAM;AAEnC,IAAA,IAAI,UAAU,KAAO,EAAA;AACnB,MAAA,OAAO,uBAAwB,EAAA,CAAA;AAAA,KACjC;AACA,IAAA,OAAO,iBAAkB,EAAA,CAAA;AAAA,GAC3B,CAAA;AAEA,EAAO,OAAA;AAAA,IACL,SAAA;AAAA,IACA,sBAAA;AAAA,GACF,CAAA;AACF,CAAC;;;;"}
|
|
@@ -7,7 +7,7 @@ export declare const useLangListStore: import("pinia").StoreDefinition<"gmLangLi
|
|
|
7
7
|
isFinished: import("vue").Ref<boolean>;
|
|
8
8
|
getLangList: () => Promise<void>;
|
|
9
9
|
getDataFinally: () => Promise<unknown>;
|
|
10
|
-
}, "
|
|
10
|
+
}, "isLoading" | "isFinished" | "langList">>, Pick<{
|
|
11
11
|
langList: import("@vueuse/shared").RemovableRef<GetV1BasicGetLangListResultData[]>;
|
|
12
12
|
isLoading: import("vue").Ref<boolean>;
|
|
13
13
|
isFinished: import("vue").Ref<boolean>;
|
package/lib/index.css
CHANGED
|
@@ -715,6 +715,10 @@ video {
|
|
|
715
715
|
.gm-align-middle {
|
|
716
716
|
vertical-align: middle;
|
|
717
717
|
}
|
|
718
|
+
.\!gm-text-xs {
|
|
719
|
+
font-size: 0.75rem !important;
|
|
720
|
+
line-height: 1rem !important;
|
|
721
|
+
}
|
|
718
722
|
.gm-text-\[13px\] {
|
|
719
723
|
font-size: 13px;
|
|
720
724
|
}
|
|
@@ -778,27 +782,28 @@ video {
|
|
|
778
782
|
margin: 0;
|
|
779
783
|
}
|
|
780
784
|
|
|
781
|
-
[data-v-
|
|
782
|
-
|
|
783
|
-
margin-bottom: 4px;
|
|
785
|
+
[data-v-a0a106bd] .gmTableNoBorder .el-table__body .el-table__cell {
|
|
786
|
+
border-right: none;
|
|
784
787
|
}
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
background-color: var(--el-input-bg-color, var(--el-fill-color-blank));
|
|
788
|
+
|
|
789
|
+
[data-v-a0a106bd] .gmTableNoBorder .el-table__inner-wrapper:before {
|
|
790
|
+
height: 0;
|
|
789
791
|
}
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
792
|
+
|
|
793
|
+
[data-v-a0a106bd] .gmTableNoBorder.el-table--border .el-table__inner-wrapper:after {
|
|
794
|
+
height: 0;
|
|
793
795
|
}
|
|
794
796
|
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
color: var(--el-input-icon-color, var(--el-text-color-placeholder));
|
|
797
|
+
[data-v-a0a106bd] .gmTableNoBorder.el-table--border:after {
|
|
798
|
+
height: 0;
|
|
798
799
|
}
|
|
799
800
|
|
|
800
|
-
|
|
801
|
-
|
|
801
|
+
[data-v-a0a106bd] .gmTableNoBorder.el-table--border:before {
|
|
802
|
+
height: 0;
|
|
803
|
+
}
|
|
804
|
+
|
|
805
|
+
[data-v-a0a106bd] .gmTableNoBorder .el-table__border-left-patch {
|
|
806
|
+
height: 0;
|
|
802
807
|
}
|
|
803
808
|
.circular[data-v-b391445c] {
|
|
804
809
|
animation: loading-rotate-b391445c 2s linear infinite;
|
|
@@ -831,6 +836,10 @@ video {
|
|
|
831
836
|
stroke-dashoffset: -120px;
|
|
832
837
|
}
|
|
833
838
|
}
|
|
839
|
+
[data-v-ec3af0bb] .gmSearchForm .el-form-item {
|
|
840
|
+
margin-right: 0;
|
|
841
|
+
margin-bottom: 4px;
|
|
842
|
+
}
|
|
834
843
|
.gm-flex-center[data-v-2a79bac9] {
|
|
835
844
|
align-items: center;
|
|
836
845
|
}
|
|
@@ -838,28 +847,55 @@ video {
|
|
|
838
847
|
.gm-flex-justify-between[data-v-2a79bac9] {
|
|
839
848
|
justify-content: space-between;
|
|
840
849
|
}
|
|
841
|
-
[data-v-
|
|
842
|
-
|
|
850
|
+
[data-v-29f682ba] .el-upload-dragger {
|
|
851
|
+
padding: 10px;
|
|
852
|
+
border: none;
|
|
843
853
|
}
|
|
844
854
|
|
|
845
|
-
[data-v-
|
|
846
|
-
|
|
855
|
+
.gm-upload-preview-dialog[data-v-29f682ba] [data-v-29f682ba] .el-dialog__body {
|
|
856
|
+
padding: 0;
|
|
847
857
|
}
|
|
848
858
|
|
|
849
|
-
[data-v-
|
|
850
|
-
|
|
859
|
+
[data-v-29f682ba] .el-upload-list__item, [data-v-29f682ba] .el-upload--picture-card {
|
|
860
|
+
width: 120px;
|
|
861
|
+
height: 120px;
|
|
862
|
+
display: flex;
|
|
863
|
+
align-items: center;
|
|
864
|
+
justify-content: center;
|
|
851
865
|
}
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
866
|
+
.gm-number-interval-single[data-v-47a13fd0] {
|
|
867
|
+
border-radius: var(--el-input-border-radius, var(--el-border-radius-base));
|
|
868
|
+
box-shadow: 0 0 0 1px var(--el-input-border-color, var(--el-border-color)) inset;
|
|
869
|
+
background-color: var(--el-input-bg-color, var(--el-fill-color-blank));
|
|
870
|
+
}
|
|
871
|
+
.gm-number-interval-single[data-v-47a13fd0] [data-v-47a13fd0] .el-input__wrapper {
|
|
872
|
+
box-shadow: none;
|
|
873
|
+
background: none;
|
|
855
874
|
}
|
|
856
875
|
|
|
857
|
-
[data-v-
|
|
858
|
-
|
|
876
|
+
.gm-number-interval-close[data-v-47a13fd0] {
|
|
877
|
+
display: none;
|
|
878
|
+
color: var(--el-input-icon-color, var(--el-text-color-placeholder));
|
|
859
879
|
}
|
|
860
880
|
|
|
861
|
-
[data-v-
|
|
862
|
-
|
|
881
|
+
.gm-number-interval-single[data-v-47a13fd0]:hover .gm-number-interval-close[data-v-47a13fd0] {
|
|
882
|
+
display: flex;
|
|
883
|
+
}
|
|
884
|
+
.gm-upload-material .el-overlay-dialog {
|
|
885
|
+
display: flex;
|
|
886
|
+
align-items: center;
|
|
887
|
+
justify-content: center;
|
|
888
|
+
}
|
|
889
|
+
.gm-upload-material .el-dialog {
|
|
890
|
+
margin: 0;
|
|
891
|
+
}
|
|
892
|
+
.gm-upload-material .el-dialog__body {
|
|
893
|
+
max-height: calc(100vh - 100px);
|
|
894
|
+
overflow-y: auto;
|
|
895
|
+
}
|
|
896
|
+
.gm-upload-material .el-dialog__body video,
|
|
897
|
+
.gm-upload-material .el-dialog__body img {
|
|
898
|
+
max-height: calc(100vh - 150px);
|
|
863
899
|
}
|
|
864
900
|
|
|
865
901
|
.pagination-container[data-v-19230954] {
|
package/lib/utils/index.d.ts
CHANGED
package/lib/utils/index.js
CHANGED
|
@@ -9,6 +9,7 @@ require('./src/types.js');
|
|
|
9
9
|
require('./src/date/index.js');
|
|
10
10
|
var file = require('./src/file.js');
|
|
11
11
|
var general = require('./src/general.js');
|
|
12
|
+
require('./src/crypto/index.js');
|
|
12
13
|
var install = require('./src/vue/install.js');
|
|
13
14
|
var resolver = require('./src/vue/resolver.js');
|
|
14
15
|
var event = require('./src/elementPlus/event.js');
|
|
@@ -18,6 +19,8 @@ var errorMessage = require('./src/http/errorMessage.js');
|
|
|
18
19
|
var interceptors = require('./src/http/interceptors.js');
|
|
19
20
|
var devProxy = require('./src/http/devProxy.js');
|
|
20
21
|
var dateShortcuts = require('./src/date/dateShortcuts.js');
|
|
22
|
+
var md5 = require('./src/crypto/md5.js');
|
|
23
|
+
var sha1 = require('./src/crypto/sha1.js');
|
|
21
24
|
|
|
22
25
|
|
|
23
26
|
|
|
@@ -28,6 +31,7 @@ exports.isDecimal = is.isDecimal;
|
|
|
28
31
|
exports.isError = is.isError;
|
|
29
32
|
exports.isEven = is.isEven;
|
|
30
33
|
exports.isHttps = is.isHttps;
|
|
34
|
+
exports.isImageUrl = is.isImageUrl;
|
|
31
35
|
exports.isInteger = is.isInteger;
|
|
32
36
|
exports.isNegative = is.isNegative;
|
|
33
37
|
exports.isNil = is.isNil;
|
|
@@ -40,6 +44,7 @@ exports.isPositive = is.isPositive;
|
|
|
40
44
|
exports.isString = is.isString;
|
|
41
45
|
exports.isSymbol = is.isSymbol;
|
|
42
46
|
exports.isUndefined = is.isUndefined;
|
|
47
|
+
exports.isVideoUrl = is.isVideoUrl;
|
|
43
48
|
exports.hasOwn = objects.hasOwn;
|
|
44
49
|
exports.keysOf = objects.keysOf;
|
|
45
50
|
exports.resetObject = objects.resetObject;
|
|
@@ -72,4 +77,17 @@ exports.req401Interceptors = interceptors.req401Interceptors;
|
|
|
72
77
|
exports.res401Interceptors = interceptors.res401Interceptors;
|
|
73
78
|
exports.giimeDevProxy = devProxy.giimeDevProxy;
|
|
74
79
|
exports.getDateShortcuts = dateShortcuts.getDateShortcuts;
|
|
80
|
+
exports.b64_hmac_md5 = md5.b64_hmac_md5;
|
|
81
|
+
exports.b64_md5 = md5.b64_md5;
|
|
82
|
+
exports.hex_hmac_md5 = md5.hex_hmac_md5;
|
|
83
|
+
exports.hex_md5 = md5.hex_md5;
|
|
84
|
+
exports.str_hmac_md5 = md5.str_hmac_md5;
|
|
85
|
+
exports.str_md5 = md5.str_md5;
|
|
86
|
+
exports.ts_md5_file = md5.ts_md5_file;
|
|
87
|
+
exports.any_hmac_sha1 = sha1.any_hmac_sha1;
|
|
88
|
+
exports.any_sha1 = sha1.any_sha1;
|
|
89
|
+
exports.b64_hmac_sha1 = sha1.b64_hmac_sha1;
|
|
90
|
+
exports.b64_sha1 = sha1.b64_sha1;
|
|
91
|
+
exports.hex_hmac_sha1 = sha1.hex_hmac_sha1;
|
|
92
|
+
exports.hex_sha1 = sha1.hex_sha1;
|
|
75
93
|
//# sourceMappingURL=index.js.map
|
package/lib/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type AliOssParams = {
|
|
2
|
+
file: File;
|
|
3
|
+
fileName?: string;
|
|
4
|
+
seat?: string;
|
|
5
|
+
options?: any;
|
|
6
|
+
};
|
|
7
|
+
export type AliOssResponse = {
|
|
8
|
+
url: string;
|
|
9
|
+
name: string;
|
|
10
|
+
lastModified: number;
|
|
11
|
+
md5: string;
|
|
12
|
+
};
|
|
13
|
+
export declare const getFileExist: (md5Code: string, ext: string) => Promise<string | false>;
|
|
14
|
+
export declare const aliossPutFile: ({ file, fileName, seat, options }: AliOssParams) => Promise<AliOssResponse>;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var AliOss = require('ali-oss');
|
|
4
|
+
var index = require('../../hooks/store/useAliossStsToken/index.js');
|
|
5
|
+
require('../../api/materialApi/index.js');
|
|
6
|
+
var index$1 = require('../../components/src/plugins/message/index.js');
|
|
7
|
+
var md5 = require('./crypto/md5.js');
|
|
8
|
+
var getAdFileExist = require('../../api/materialApi/cross/getAdFileExist.js');
|
|
9
|
+
|
|
10
|
+
const getParallelPartSize = (size) => {
|
|
11
|
+
const SM = size / 1024 / 1024;
|
|
12
|
+
let parallel = 1;
|
|
13
|
+
let partSize = 1024 * 1024;
|
|
14
|
+
if (SM <= 5) {
|
|
15
|
+
partSize *= 5;
|
|
16
|
+
}
|
|
17
|
+
if (SM > 5 && SM <= 10) {
|
|
18
|
+
parallel = 2;
|
|
19
|
+
partSize *= 4;
|
|
20
|
+
}
|
|
21
|
+
if (SM > 10 && SM <= 30) {
|
|
22
|
+
parallel = 4;
|
|
23
|
+
partSize *= 5;
|
|
24
|
+
}
|
|
25
|
+
if (SM > 30 && SM <= 50) {
|
|
26
|
+
parallel = 6;
|
|
27
|
+
partSize *= 6;
|
|
28
|
+
}
|
|
29
|
+
if (SM > 50) {
|
|
30
|
+
parallel = 8;
|
|
31
|
+
partSize *= 8;
|
|
32
|
+
}
|
|
33
|
+
return {
|
|
34
|
+
parallel,
|
|
35
|
+
partSize
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
const getFileExist = async (md5Code, ext) => {
|
|
39
|
+
const { data } = await getAdFileExist.getAdFileExist({ md5Code, ext });
|
|
40
|
+
if (data.code !== 200) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
if (!data.data.count) {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
return data.data.url;
|
|
47
|
+
};
|
|
48
|
+
const aliossPutFile = async ({ file, fileName, seat, options }) => {
|
|
49
|
+
const md5$1 = await md5.ts_md5_file(file);
|
|
50
|
+
let { name, lastModified, size } = file;
|
|
51
|
+
const ext = name.match(/\.(\w+)$/)?.[0] || "";
|
|
52
|
+
const url = await getFileExist(md5$1, ext);
|
|
53
|
+
name = (fileName || name).slice(0, name.lastIndexOf("."));
|
|
54
|
+
if (url) {
|
|
55
|
+
return {
|
|
56
|
+
name,
|
|
57
|
+
url,
|
|
58
|
+
lastModified,
|
|
59
|
+
md5: md5$1
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
const aliossStsTokenStore = index.useAliossStsTokenStore();
|
|
63
|
+
const { AccessKeyId, AccessKeySecret, SecurityToken } = await aliossStsTokenStore.getAliossStsTokenAsync();
|
|
64
|
+
const timestr = Date.now();
|
|
65
|
+
const aliossPath = `material/${seat}/material-file-${timestr}-${size}-${lastModified}${ext}`;
|
|
66
|
+
if (!options) {
|
|
67
|
+
const { parallel, partSize } = getParallelPartSize(size);
|
|
68
|
+
options = options ?? {
|
|
69
|
+
parallel,
|
|
70
|
+
partSize,
|
|
71
|
+
ContentDisposition: `attachment;filename=${encodeURIComponent(name)}${ext};filename*=${encodeURIComponent(name)}${ext}`
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
const ossClient = new AliOss({
|
|
75
|
+
// yourRegion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
|
|
76
|
+
region: "oss-cn-shenzhen",
|
|
77
|
+
// 从STS服务获取的临时访问密钥(AccessKey ID、AccessKey Secret、StsToken)。
|
|
78
|
+
accessKeyId: AccessKeyId,
|
|
79
|
+
accessKeySecret: AccessKeySecret,
|
|
80
|
+
stsToken: SecurityToken,
|
|
81
|
+
// 刷新临时访问凭证的时间间隔,单位为毫秒。
|
|
82
|
+
refreshSTSTokenInterval: 3e5,
|
|
83
|
+
// 填写Bucket名称。
|
|
84
|
+
bucket: "giikin-material"
|
|
85
|
+
});
|
|
86
|
+
return new Promise((resolve, reject) => {
|
|
87
|
+
try {
|
|
88
|
+
const upload = options.parallel === 1 ? "put" : "multipartUpload";
|
|
89
|
+
ossClient[upload](aliossPath, file, options).then(() => {
|
|
90
|
+
const url2 = `https://sucai.giikin.cn/${aliossPath}`;
|
|
91
|
+
resolve({
|
|
92
|
+
name: `${name}${ext}`,
|
|
93
|
+
url: url2,
|
|
94
|
+
lastModified,
|
|
95
|
+
md5: md5$1
|
|
96
|
+
});
|
|
97
|
+
});
|
|
98
|
+
} catch (error) {
|
|
99
|
+
index$1.GmMessage.error(error || "\u4E0A\u4F20\u5931\u8D25");
|
|
100
|
+
reject(error);
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
exports.aliossPutFile = aliossPutFile;
|
|
106
|
+
exports.getFileExist = getFileExist;
|
|
107
|
+
//# sourceMappingURL=alioss.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alioss.js","sources":["../../../../../packages/utils/src/alioss.ts"],"sourcesContent":["import AliOss from 'ali-oss';\r\nimport { useAliossStsTokenStore } from '@giime/hooks/store/useAliossStsToken';\r\nimport { getAdFileExist } from '@giime/api/materialApi';\r\nimport { GmMessage } from '@giime/components/src/plugins/message';\r\nimport { ts_md5_file } from './crypto/md5';\r\n\r\n/* 上传文件到阿里云 */\r\nexport type AliOssParams = {\r\n file: File; // 资源文件\r\n fileName?: string; // 文件名\r\n seat?: string; // 文件存储位置\r\n options?: any; // 上传到oss的设置\r\n};\r\n\r\nexport type AliOssResponse = {\r\n url: string; // 文件地址\r\n name: string; // 文件名\r\n lastModified: number; // 文件最后修改时间\r\n md5: string; // 文件md5\r\n};\r\n\r\n/* 文件分片 */\r\nconst getParallelPartSize = (size: number) => {\r\n const SM = size / 1024 / 1024;\r\n let parallel = 1;\r\n let partSize = 1024 * 1024;\r\n if (SM <= 5) {\r\n partSize *= 5;\r\n }\r\n if (SM > 5 && SM <= 10) {\r\n parallel = 2;\r\n partSize *= 4;\r\n }\r\n if (SM > 10 && SM <= 30) {\r\n parallel = 4;\r\n partSize *= 5;\r\n }\r\n if (SM > 30 && SM <= 50) {\r\n parallel = 6;\r\n partSize *= 6;\r\n }\r\n if (SM > 50) {\r\n parallel = 8;\r\n partSize *= 8;\r\n }\r\n\r\n return {\r\n parallel,\r\n partSize,\r\n };\r\n};\r\n\r\n/* 检测广告素材是否已存在 */\r\nexport const getFileExist = async (md5Code: string, ext: string) => {\r\n const { data } = await getAdFileExist({ md5Code, ext });\r\n if (data.code !== 200) {\r\n return false;\r\n }\r\n if (!data.data.count) {\r\n return false;\r\n }\r\n return data.data.url;\r\n};\r\n\r\n/* 上传文件 */\r\nexport const aliossPutFile = async ({ file, fileName, seat, options }: AliOssParams): Promise<AliOssResponse> => {\r\n const md5 = await ts_md5_file(file);\r\n let { name, lastModified, size } = file;\r\n const ext = name.match(/\\.(\\w+)$/)?.[0] || '';\r\n const url = await getFileExist(md5, ext);\r\n name = (fileName || name).slice(0, name.lastIndexOf('.'));\r\n\r\n /* 文件已存在直接返回路径 */\r\n if (url) {\r\n return {\r\n name,\r\n url,\r\n lastModified,\r\n md5,\r\n };\r\n }\r\n\r\n /* 阿里上传权限 */\r\n const aliossStsTokenStore = useAliossStsTokenStore();\r\n const { AccessKeyId, AccessKeySecret, SecurityToken } = await aliossStsTokenStore.getAliossStsTokenAsync();\r\n\r\n /* 文件存储路径 */\r\n const timestr = Date.now();\r\n\r\n const aliossPath = `material/${seat}/material-file-${timestr}-${size}-${lastModified}${ext}`;\r\n\r\n if (!options) {\r\n // 根据文件大小设置并发数和分片大小\r\n const { parallel, partSize } = getParallelPartSize(size);\r\n options = options ?? {\r\n parallel,\r\n partSize,\r\n ContentDisposition: `attachment;filename=${encodeURIComponent(name)}${ext};filename*=${encodeURIComponent(name)}${ext}`,\r\n };\r\n }\r\n\r\n const ossClient = new AliOss({\r\n // yourRegion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。\r\n region: 'oss-cn-shenzhen',\r\n // 从STS服务获取的临时访问密钥(AccessKey ID、AccessKey Secret、StsToken)。\r\n accessKeyId: AccessKeyId,\r\n accessKeySecret: AccessKeySecret,\r\n stsToken: SecurityToken,\r\n // 刷新临时访问凭证的时间间隔,单位为毫秒。\r\n refreshSTSTokenInterval: 300000,\r\n // 填写Bucket名称。\r\n bucket: 'giikin-material',\r\n });\r\n return new Promise((resolve, reject) => {\r\n try {\r\n /* 分片数量大于1,使用 multipartUpload 方法 */\r\n const upload = options.parallel === 1 ? 'put' : 'multipartUpload';\r\n ossClient[upload](aliossPath, file, options).then(() => {\r\n const url = `https://sucai.giikin.cn/${aliossPath}`;\r\n resolve({\r\n name: `${name}${ext}`,\r\n url,\r\n lastModified,\r\n md5,\r\n });\r\n });\r\n } catch (error) {\r\n GmMessage.error(error || '上传失败');\r\n reject(error);\r\n }\r\n });\r\n};\r\n"],"names":["getAdFileExist","md5","ts_md5_file","useAliossStsTokenStore","url","GmMessage"],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var md5 = require('./md5.js');
|
|
4
|
+
var sha1 = require('./sha1.js');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
exports.b64_hmac_md5 = md5.b64_hmac_md5;
|
|
9
|
+
exports.b64_md5 = md5.b64_md5;
|
|
10
|
+
exports.hex_hmac_md5 = md5.hex_hmac_md5;
|
|
11
|
+
exports.hex_md5 = md5.hex_md5;
|
|
12
|
+
exports.str_hmac_md5 = md5.str_hmac_md5;
|
|
13
|
+
exports.str_md5 = md5.str_md5;
|
|
14
|
+
exports.ts_md5_file = md5.ts_md5_file;
|
|
15
|
+
exports.any_hmac_sha1 = sha1.any_hmac_sha1;
|
|
16
|
+
exports.any_sha1 = sha1.any_sha1;
|
|
17
|
+
exports.b64_hmac_sha1 = sha1.b64_hmac_sha1;
|
|
18
|
+
exports.b64_sha1 = sha1.b64_sha1;
|
|
19
|
+
exports.hex_hmac_sha1 = sha1.hex_hmac_sha1;
|
|
20
|
+
exports.hex_sha1 = sha1.hex_sha1;
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare const hex_md5: (s: string) => string;
|
|
2
|
+
export declare const b64_md5: (s: string) => string;
|
|
3
|
+
export declare const str_md5: (s: string) => string;
|
|
4
|
+
export declare const hex_hmac_md5: (key: string, data: string) => string;
|
|
5
|
+
export declare const b64_hmac_md5: (key: string, data: string) => string;
|
|
6
|
+
export declare const str_hmac_md5: (key: string, data: string) => string;
|
|
7
|
+
export declare function ts_md5_file(file: File): Promise<string>;
|