5febe4b16336334f9fece8cb8e0c29468a0a569a7aa06c00345429bf6e9d745a.json 21 KB

1
  1. {"ast":null,"code":"let wrapCallback = function (callback, log, methodName) {\n callback = callback || function () {};\n let start = new Date().getTime();\n return function (err, result) {\n log.runLog('info', methodName, 'ObsClient cost ' + (new Date().getTime() - start) + ' ms');\n if (Object.prototype.toString.call(err) === '[object String]') {\n return callback(new Error(err), result);\n }\n return callback(err, result);\n };\n};\nlet wrapEventCallback = function (eventCallback) {\n eventCallback = eventCallback || function () {};\n return function (t, key, result) {\n if (Object.prototype.toString.call(result) === '[object Error]') {\n return eventCallback(t, key, result);\n }\n if (Object.prototype.toString.call(result) === '[object String]') {\n return eventCallback(t, key, new Error(result));\n }\n if (!result) {\n return;\n }\n if (result.CommonMsg.Status > 300) {\n return eventCallback(t, key, new Error('status:' + result.CommonMsg.Status + ', code:' + result.CommonMsg.Code + ', message:' + result.CommonMsg.Message));\n }\n eventCallback(t, key, result);\n };\n};\nlet checkPrefix = function (prefix) {\n if (Object.prototype.toString.call(prefix) === '[object String]' && prefix.lastIndexOf('/') !== prefix.length - 1) {\n prefix += '/';\n }\n return prefix;\n};\nlet posix = {};\nposix.extend = function (ObsClient) {\n ObsClient.prototype.dropFile = function (param, callback) {\n this.deleteObject(param, callback);\n };\n ObsClient.prototype.dropFolder = function (param, callback) {\n let that = this;\n param = param || {};\n let _callback = wrapCallback(callback, that.log, 'dropFolder');\n let eventCallback = wrapEventCallback(param.EventCallback);\n let taskNum = param.TaskNum || 1;\n let runningTask = 0;\n let taskQueue = [];\n let doNext = function () {\n while (runningTask < taskNum && taskQueue.length > 0) {\n taskQueue.shift()();\n }\n };\n let doDropOne = function (key, ctx, done, dryRun) {\n if (dryRun) {\n ctx.finished++;\n done(ctx);\n return;\n }\n let task = function () {\n runningTask++;\n that.dropFile({\n Bucket: ctx.bucket,\n Key: key\n }, function (err, result) {\n runningTask--;\n ctx.finished++;\n doNext();\n if (err) {\n eventCallback('dropFileFailed', key, err);\n ctx.subDeleted = false;\n } else if (result.CommonMsg.Status >= 300) {\n eventCallback('dropFileFailed', key, result);\n ctx.subDeleted = false;\n } else {\n eventCallback('dropFileSucceed', key, result);\n }\n done(ctx);\n });\n };\n if (runningTask < taskNum) {\n task();\n } else {\n taskQueue.push(task);\n }\n };\n let delimiter = '/';\n let createDone = function (subFolder, ctx, done) {\n return function (subCtx) {\n if (!subCtx.isTruncated && subCtx.finished === subCtx.total && subCtx.subDeleted) {\n doDropOne(subFolder, ctx, done, false);\n }\n };\n };\n let recursiveDropByFolder = function (ctx, bucket, prefix, marker, done) {\n runningTask++;\n that.listObjects({\n Bucket: bucket,\n Prefix: prefix,\n Delimiter: delimiter,\n Marker: marker\n }, function (err, result) {\n runningTask--;\n if (err) {\n return _callback(err);\n }\n if (result.CommonMsg.Status >= 300) {\n return _callback(null, result);\n }\n ctx.total += result.InterfaceResult.Contents.length;\n ctx.total += result.InterfaceResult.CommonPrefixes.length;\n if (ctx.total === 0) {\n done(ctx);\n return;\n }\n ctx.isTruncated = result.InterfaceResult.IsTruncated === 'true';\n let createRecursiveDropByFolderTask = function (subFolder) {\n return function () {\n recursiveDropByFolder({\n total: 0,\n finished: 0,\n isTruncated: false,\n bucket: bucket,\n subDeleted: true\n }, bucket, subFolder, null, createDone(subFolder, ctx, done));\n };\n };\n for (let j = 0; j < result.InterfaceResult.CommonPrefixes.length; j++) {\n let subFolder = checkPrefix(result.InterfaceResult.CommonPrefixes[j]['Prefix']);\n if (runningTask < taskNum) {\n recursiveDropByFolder({\n total: 0,\n finished: 0,\n isTruncated: false,\n bucket: bucket,\n subDeleted: true\n }, bucket, subFolder, null, createDone(subFolder, ctx, done));\n } else {\n taskQueue.push(createRecursiveDropByFolderTask(subFolder));\n }\n }\n for (let j = 0; j < result.InterfaceResult.Contents.length; j++) {\n let key = result.InterfaceResult.Contents[j]['Key'];\n doDropOne(key, ctx, done, key.lastIndexOf(delimiter) === key.length - 1);\n }\n if (ctx.isTruncated) {\n if (runningTask < taskNum) {\n recursiveDropByFolder(ctx, bucket, prefix, result.InterfaceResult.NextMarker, done);\n } else {\n taskQueue.push(function () {\n recursiveDropByFolder(ctx, bucket, prefix, result.InterfaceResult.NextMarker, done);\n });\n }\n }\n });\n };\n let folder = checkPrefix(param.Prefix);\n recursiveDropByFolder({\n total: 0,\n finished: 0,\n isTruncated: false,\n bucket: param.Bucket,\n subDeleted: true\n }, param.Bucket, folder, null, function (ctx) {\n if (ctx.isTruncated || ctx.finished !== ctx.total) {\n return;\n }\n if (ctx.subDeleted) {\n that.dropFile({\n Bucket: ctx.bucket,\n Key: folder\n }, function (err, result) {\n if (err) {\n eventCallback('dropFileFailed', folder, err);\n return _callback(err);\n }\n if (result.CommonMsg.Status >= 300) {\n eventCallback('dropFileFailed', folder, result);\n return _callback(null, result);\n }\n eventCallback('dropFileSucceed', folder, result);\n return _callback(null, result);\n });\n return;\n }\n let errMessage = 'drop folder ' + folder + ' failed due to child file deletion failed';\n eventCallback('dropFileFailed', folder, new Error(errMessage));\n _callback(errMessage);\n });\n };\n};\nexport default posix;","map":{"version":3,"names":["wrapCallback","callback","log","methodName","start","Date","getTime","err","result","runLog","Object","prototype","toString","call","Error","wrapEventCallback","eventCallback","t","key","CommonMsg","Status","Code","Message","checkPrefix","prefix","lastIndexOf","length","posix","extend","ObsClient","dropFile","param","deleteObject","dropFolder","that","_callback","EventCallback","taskNum","TaskNum","runningTask","taskQueue","doNext","shift","doDropOne","ctx","done","dryRun","finished","task","Bucket","bucket","Key","subDeleted","push","delimiter","createDone","subFolder","subCtx","isTruncated","total","recursiveDropByFolder","marker","listObjects","Prefix","Delimiter","Marker","InterfaceResult","Contents","CommonPrefixes","IsTruncated","createRecursiveDropByFolderTask","j","NextMarker","folder","errMessage"],"sources":["F:/workspace/202226701027/huinongbao-app/node_modules/esdk-obs-browserjs/src/posix.js"],"sourcesContent":["\r\n\r\nlet wrapCallback = function(callback, log, methodName){\r\n\tcallback = callback || function(){};\r\n\tlet start = new Date().getTime();\r\n\treturn function(err, result){\r\n\t\tlog.runLog('info', methodName, 'ObsClient cost ' + (new Date().getTime() - start) + ' ms');\r\n\t\tif(Object.prototype.toString.call(err) === '[object String]'){\r\n\t\t\treturn callback(new Error(err), result);\r\n\t\t}\r\n\t\t\r\n\t\treturn callback(err, result);\r\n\t};\r\n};\r\n\r\n\r\nlet wrapEventCallback = function(eventCallback){\r\n\teventCallback = eventCallback || function(){};\r\n\treturn function(t, key, result){\r\n\t\tif(Object.prototype.toString.call(result) === '[object Error]'){\r\n\t\t\treturn eventCallback(t, key, result);\r\n\t\t}\r\n\t\t\r\n\t\tif(Object.prototype.toString.call(result) === '[object String]'){\r\n\t\t\treturn eventCallback(t, key, new Error(result));\r\n\t\t}\r\n\t\t\r\n\t\tif(!result){\r\n\t\t\treturn;\r\n\t\t}\r\n\t\t\r\n\t\tif(result.CommonMsg.Status > 300){\r\n\t\t\treturn eventCallback(t, key, new Error('status:' + result.CommonMsg.Status + ', code:' + result.CommonMsg.Code + ', message:' + result.CommonMsg.Message));\r\n\t\t}\r\n\r\n\t\teventCallback(t, key, result);\r\n\t};\r\n};\r\n\r\nlet checkPrefix = function(prefix){\r\n\tif(Object.prototype.toString.call(prefix) === '[object String]' && prefix.lastIndexOf('/') !== prefix.length - 1){\r\n\t\tprefix += '/';\r\n\t}\r\n\treturn prefix;\r\n};\r\n\r\nlet posix = {};\r\nposix.extend = function(ObsClient){\r\n\tObsClient.prototype.dropFile = function(param, callback){\r\n\t\tthis.deleteObject(param, callback);\r\n\t};\r\n\t\r\n\tObsClient.prototype.dropFolder = function(param, callback){\r\n\t\tlet that = this;\r\n\t\tparam = param || {};\r\n\t\tlet _callback = wrapCallback(callback, that.log, 'dropFolder');\r\n\t\tlet eventCallback = wrapEventCallback(param.EventCallback);\r\n\t\tlet taskNum = param.TaskNum || 1;\r\n\t\tlet runningTask = 0;\r\n\t\tlet taskQueue = [];\r\n\r\n\t\tlet doNext = function(){\r\n\t\t\twhile(runningTask < taskNum && taskQueue.length > 0){\r\n\t\t\t\ttaskQueue.shift()();\r\n\t\t\t}\r\n\t\t};\r\n\t\t\r\n\t\tlet doDropOne = function(key, ctx, done, dryRun){\r\n\t\t\tif(dryRun){\r\n\t\t\t\tctx.finished++;\r\n\t\t\t\tdone(ctx);\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tlet task = function(){\r\n\t\t\t\trunningTask++;\r\n\t\t\t\tthat.dropFile({\r\n\t\t\t\t\tBucket : ctx.bucket,\r\n\t\t\t\t\tKey : key,\r\n\t\t\t\t}, function(err, result){\r\n\t\t\t\t\trunningTask--;\r\n\t\t\t\t\tctx.finished++;\r\n\t\t\t\t\tdoNext();\r\n\t\t\t\t\tif(err){\r\n\t\t\t\t\t\teventCallback('dropFileFailed', key, err);\r\n\t\t\t\t\t\tctx.subDeleted = false;\r\n\t\t\t\t\t}else if(result.CommonMsg.Status >= 300){\r\n\t\t\t\t\t\teventCallback('dropFileFailed', key, result);\r\n\t\t\t\t\t\tctx.subDeleted = false;\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\teventCallback('dropFileSucceed', key, result);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdone(ctx);\r\n\t\t\t\t});\r\n\t\t\t};\r\n\t\t\t\r\n\t\t\tif(runningTask < taskNum){\r\n\t\t\t\ttask();\r\n\t\t\t}else{\r\n\t\t\t\ttaskQueue.push(task);\r\n\t\t\t}\r\n\t\t};\r\n\t\t\r\n\t\tlet delimiter = '/';\r\n\t\t\r\n\t\tlet createDone = function(subFolder, ctx, done){\r\n\t\t\treturn function(subCtx){\r\n\t\t\t\tif(!subCtx.isTruncated && subCtx.finished === subCtx.total && subCtx.subDeleted){\r\n\t\t\t\t\tdoDropOne(subFolder, ctx, done, false);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t};\r\n\t\t\r\n\t\tlet recursiveDropByFolder = function(ctx, bucket, prefix, marker, done){\r\n\t\t\trunningTask++;\r\n\t\t\tthat.listObjects({\r\n\t\t\t\tBucket : bucket,\r\n\t\t\t\tPrefix : prefix,\r\n\t\t\t\tDelimiter : delimiter,\r\n\t\t\t\tMarker : marker,\r\n\t\t\t}, function(err, result){\r\n\t\t\t\trunningTask--;\r\n\t\t\t\tif(err){\r\n\t\t\t\t\treturn _callback(err);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif(result.CommonMsg.Status >= 300){\r\n\t\t\t\t\treturn _callback(null, result);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tctx.total += result.InterfaceResult.Contents.length;\r\n\t\t\t\tctx.total += result.InterfaceResult.CommonPrefixes.length;\r\n\t\t\t\tif(ctx.total === 0){\r\n\t\t\t\t\tdone(ctx);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tctx.isTruncated = result.InterfaceResult.IsTruncated === 'true';\r\n\t\t\t\t\r\n\t\t\t\tlet createRecursiveDropByFolderTask = function(subFolder){\r\n\t\t\t\t\treturn function(){\r\n\t\t\t\t\t\trecursiveDropByFolder({total : 0, finished : 0, isTruncated : false, bucket : bucket, subDeleted : true}, bucket, subFolder, null, createDone(subFolder, ctx, done));\r\n\t\t\t\t\t};\r\n\t\t\t\t};\r\n\t\t\t\t\r\n\t\t\t\tfor(let j=0;j<result.InterfaceResult.CommonPrefixes.length;j++){\r\n\t\t\t\t\tlet subFolder = checkPrefix(result.InterfaceResult.CommonPrefixes[j]['Prefix']);\r\n\t\t\t\t\tif(runningTask < taskNum){\r\n\t\t\t\t\t\trecursiveDropByFolder({total : 0, finished : 0, isTruncated : false, bucket : bucket, subDeleted : true}, bucket, subFolder, null, createDone(subFolder, ctx, done));\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\ttaskQueue.push(createRecursiveDropByFolderTask(subFolder));\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tfor(let j=0;j<result.InterfaceResult.Contents.length;j++){\r\n\t\t\t\t\tlet key = result.InterfaceResult.Contents[j]['Key'];\r\n\t\t\t\t\tdoDropOne(key, ctx, done, key.lastIndexOf(delimiter) === key.length - 1);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif(ctx.isTruncated){\r\n\t\t\t\t\tif(runningTask < taskNum){\r\n\t\t\t\t\t\trecursiveDropByFolder(ctx, bucket, prefix, result.InterfaceResult.NextMarker, done);\r\n\t\t\t\t\t}else{\r\n\t\t\t\t\t\ttaskQueue.push(function(){\r\n\t\t\t\t\t\t\trecursiveDropByFolder(ctx, bucket, prefix, result.InterfaceResult.NextMarker, done);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\t\t\r\n\t\tlet folder = checkPrefix(param.Prefix);\r\n\t\trecursiveDropByFolder({total : 0, finished : 0, isTruncated : false, bucket : param.Bucket, subDeleted : true}, param.Bucket, folder, null, function(ctx){\r\n\t\t\tif(ctx.isTruncated || ctx.finished !== ctx.total){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tif(ctx.subDeleted){\r\n\t\t\t\tthat.dropFile({\r\n\t\t\t\t\tBucket : ctx.bucket,\r\n\t\t\t\t\tKey : folder\r\n\t\t\t\t}, function(err, result){\r\n\t\t\t\t\tif(err){\r\n\t\t\t\t\t\teventCallback('dropFileFailed', folder, err);\r\n\t\t\t\t\t\treturn _callback(err);\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\tif(result.CommonMsg.Status >= 300){\r\n\t\t\t\t\t\teventCallback('dropFileFailed', folder, result);\r\n\t\t\t\t\t\treturn _callback(null, result);\r\n\t\t\t\t\t}\r\n\t\t\t\t\teventCallback('dropFileSucceed', folder, result);\r\n\t\t\t\t\treturn _callback(null, result);\r\n\t\t\t\t});\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tlet errMessage = 'drop folder ' + folder + ' failed due to child file deletion failed';\r\n\t\t\teventCallback('dropFileFailed', folder, new Error(errMessage));\r\n\t\t\t_callback(errMessage);\r\n\t\t});\r\n\t\t\r\n\t};\r\n};\r\n\r\nexport default posix;"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}