@@ -4,6 +4,7 @@ import Spark from 'spark-md5'
4
4
let userToken : string = ''
5
5
let apiV2BaseUrl : string = ''
6
6
let storage = { channel : 'public' }
7
+ let crawlerUrl : string = ''
7
8
8
9
try {
9
10
const sp = new URL ( window . location . href ) . searchParams
@@ -23,6 +24,7 @@ window.setUploaderOptions = options => {
23
24
options = JSON . parse ( options )
24
25
}
25
26
27
+ crawlerUrl = ''
26
28
userToken = options . userToken || ''
27
29
apiV2BaseUrl = options . apiV2BaseUrl || ''
28
30
@@ -282,6 +284,26 @@ async function getMediaInfo(file: File) {
282
284
return mf
283
285
}
284
286
287
+ let crawlerUrlPromise : Promise < string > | null
288
+ async function getCrawlerUrl ( ) {
289
+ if ( ! crawlerUrl ) {
290
+ if ( ! crawlerUrlPromise ) {
291
+ const url = `${ apiV2BaseUrl . replace ( / \/ + $ / , '' ) } /crawl`
292
+ crawlerUrlPromise = axios
293
+ . head ( url )
294
+ . then ( ( ) => ( crawlerUrl = url ) )
295
+ . catch ( ( ) => ( crawlerUrl = 'https://thinksns.zhibocloud.cn/api/v2/crawl' ) )
296
+ . finally ( ( ) => {
297
+ crawlerUrlPromise = null
298
+ } )
299
+ }
300
+
301
+ return await crawlerUrlPromise
302
+ }
303
+
304
+ return crawlerUrl
305
+ }
306
+
285
307
async function uploadRemoteImage ( params : {
286
308
src : string
287
309
remoteId : string
@@ -301,6 +323,7 @@ async function uploadRemoteImage(params: {
301
323
try {
302
324
const contentType = 'image/png'
303
325
const filename = `${ Date . now ( ) } .png`
326
+ const crawlerUrl = await getCrawlerUrl ( )
304
327
const { blob, file, buff } = await new Promise ( ( resolve , reject ) => {
305
328
const img = document . createElement ( 'img' )
306
329
img . addEventListener ( 'load' , ( ) => {
@@ -327,7 +350,7 @@ async function uploadRemoteImage(params: {
327
350
} )
328
351
img . addEventListener ( 'error' , ( ) => reject ( ) )
329
352
img . crossOrigin = 'anonymous'
330
- img . src = `${ apiV2BaseUrl . replace ( / \/ + $ / , '' ) } /crawl ?url=${ encodeURIComponent ( params . src ) } `
353
+ img . src = `${ crawlerUrl } ?url=${ encodeURIComponent ( params . src ) } `
331
354
} )
332
355
333
356
const spark = new Spark . ArrayBuffer ( )
0 commit comments