@bedelightful/upload-sdk 0.0.7

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.
Files changed (239) hide show
  1. package/LICENSE +8 -0
  2. package/README.md +132 -0
  3. package/dist/es/Exception/BaseException.js +14 -0
  4. package/dist/es/Exception/BaseException.js.map +1 -0
  5. package/dist/es/Exception/DownloadException.js +40 -0
  6. package/dist/es/Exception/DownloadException.js.map +1 -0
  7. package/dist/es/Exception/HttpException.js +50 -0
  8. package/dist/es/Exception/HttpException.js.map +1 -0
  9. package/dist/es/Exception/InitException.js +49 -0
  10. package/dist/es/Exception/InitException.js.map +1 -0
  11. package/dist/es/Exception/UploadException.js +50 -0
  12. package/dist/es/Exception/UploadException.js.map +1 -0
  13. package/dist/es/index.d.ts +867 -0
  14. package/dist/es/index.js +162 -0
  15. package/dist/es/index.js.map +1 -0
  16. package/dist/es/modules/Kodo/defaultUpload.js +38 -0
  17. package/dist/es/modules/Kodo/defaultUpload.js.map +1 -0
  18. package/dist/es/modules/Kodo/index.js +8 -0
  19. package/dist/es/modules/Kodo/index.js.map +1 -0
  20. package/dist/es/modules/Local/index.js +31 -0
  21. package/dist/es/modules/Local/index.js.map +1 -0
  22. package/dist/es/modules/MinIO/MultipartUpload.js +335 -0
  23. package/dist/es/modules/MinIO/MultipartUpload.js.map +1 -0
  24. package/dist/es/modules/MinIO/STSUpload.js +10 -0
  25. package/dist/es/modules/MinIO/STSUpload.js.map +1 -0
  26. package/dist/es/modules/MinIO/defaultUpload.js +124 -0
  27. package/dist/es/modules/MinIO/defaultUpload.js.map +1 -0
  28. package/dist/es/modules/MinIO/index.js +16 -0
  29. package/dist/es/modules/MinIO/index.js.map +1 -0
  30. package/dist/es/modules/OBS/MultipartUpload.js +269 -0
  31. package/dist/es/modules/OBS/MultipartUpload.js.map +1 -0
  32. package/dist/es/modules/OBS/STSUpload.js +71 -0
  33. package/dist/es/modules/OBS/STSUpload.js.map +1 -0
  34. package/dist/es/modules/OBS/defaultUpload.js +59 -0
  35. package/dist/es/modules/OBS/defaultUpload.js.map +1 -0
  36. package/dist/es/modules/OBS/index.js +16 -0
  37. package/dist/es/modules/OBS/index.js.map +1 -0
  38. package/dist/es/modules/OBS/utils/index.js +25 -0
  39. package/dist/es/modules/OBS/utils/index.js.map +1 -0
  40. package/dist/es/modules/OSS/MultipartUpload.js +232 -0
  41. package/dist/es/modules/OSS/MultipartUpload.js.map +1 -0
  42. package/dist/es/modules/OSS/STSUpload.js +48 -0
  43. package/dist/es/modules/OSS/STSUpload.js.map +1 -0
  44. package/dist/es/modules/OSS/defaultUpload.js +53 -0
  45. package/dist/es/modules/OSS/defaultUpload.js.map +1 -0
  46. package/dist/es/modules/OSS/index.js +16 -0
  47. package/dist/es/modules/OSS/index.js.map +1 -0
  48. package/dist/es/modules/OSS/utils/helper.js +137 -0
  49. package/dist/es/modules/OSS/utils/helper.js.map +1 -0
  50. package/dist/es/modules/OSS/utils/signature.js +96 -0
  51. package/dist/es/modules/OSS/utils/signature.js.map +1 -0
  52. package/dist/es/modules/TOS/MultipartUpload.js +288 -0
  53. package/dist/es/modules/TOS/MultipartUpload.js.map +1 -0
  54. package/dist/es/modules/TOS/STSUpload.js +92 -0
  55. package/dist/es/modules/TOS/STSUpload.js.map +1 -0
  56. package/dist/es/modules/TOS/defaultUpload.js +65 -0
  57. package/dist/es/modules/TOS/defaultUpload.js.map +1 -0
  58. package/dist/es/modules/TOS/index.js +16 -0
  59. package/dist/es/modules/TOS/index.js.map +1 -0
  60. package/dist/es/modules/TOS/utils/TosClientError.js +15 -0
  61. package/dist/es/modules/TOS/utils/TosClientError.js.map +1 -0
  62. package/dist/es/modules/TOS/utils/index.js +38 -0
  63. package/dist/es/modules/TOS/utils/index.js.map +1 -0
  64. package/dist/es/modules/TOS/utils/signatureV4.js +269 -0
  65. package/dist/es/modules/TOS/utils/signatureV4.js.map +1 -0
  66. package/dist/es/modules/TOS/utils/signatureV4Credentials.js +21 -0
  67. package/dist/es/modules/TOS/utils/signatureV4Credentials.js.map +1 -0
  68. package/dist/es/modules/TOS/utils/universal/crypto.browser.js +56 -0
  69. package/dist/es/modules/TOS/utils/universal/crypto.browser.js.map +1 -0
  70. package/dist/es/modules/TOS/utils/utils.js +18 -0
  71. package/dist/es/modules/TOS/utils/utils.js.map +1 -0
  72. package/dist/es/modules/index.js +20 -0
  73. package/dist/es/modules/index.js.map +1 -0
  74. package/dist/es/types/Kodo.js +1 -0
  75. package/dist/es/types/Kodo.js.map +1 -0
  76. package/dist/es/types/Local.js +1 -0
  77. package/dist/es/types/Local.js.map +1 -0
  78. package/dist/es/types/MinIO.js +1 -0
  79. package/dist/es/types/MinIO.js.map +1 -0
  80. package/dist/es/types/OBS.js +8 -0
  81. package/dist/es/types/OBS.js.map +1 -0
  82. package/dist/es/types/OSS.js +1 -0
  83. package/dist/es/types/OSS.js.map +1 -0
  84. package/dist/es/types/TOS.js +1 -0
  85. package/dist/es/types/TOS.js.map +1 -0
  86. package/dist/es/types/error.js +1 -0
  87. package/dist/es/types/error.js.map +1 -0
  88. package/dist/es/types/index.js +13 -0
  89. package/dist/es/types/index.js.map +1 -0
  90. package/dist/es/types/log.js +1 -0
  91. package/dist/es/types/log.js.map +1 -0
  92. package/dist/es/types/request.js +1 -0
  93. package/dist/es/types/request.js.map +1 -0
  94. package/dist/es/utils/EventEmitter.js +32 -0
  95. package/dist/es/utils/EventEmitter.js.map +1 -0
  96. package/dist/es/utils/UploadManger.js +276 -0
  97. package/dist/es/utils/UploadManger.js.map +1 -0
  98. package/dist/es/utils/UploadTask.js +13 -0
  99. package/dist/es/utils/UploadTask.js.map +1 -0
  100. package/dist/es/utils/checkDataFormat.js +41 -0
  101. package/dist/es/utils/checkDataFormat.js.map +1 -0
  102. package/dist/es/utils/global.js +83 -0
  103. package/dist/es/utils/global.js.map +1 -0
  104. package/dist/es/utils/index.js +20 -0
  105. package/dist/es/utils/index.js.map +1 -0
  106. package/dist/es/utils/logPubSub.js +59 -0
  107. package/dist/es/utils/logPubSub.js.map +1 -0
  108. package/dist/es/utils/multipart.js +159 -0
  109. package/dist/es/utils/multipart.js.map +1 -0
  110. package/dist/es/utils/nanoid.js +10 -0
  111. package/dist/es/utils/nanoid.js.map +1 -0
  112. package/dist/es/utils/regExpUtil.js +21 -0
  113. package/dist/es/utils/regExpUtil.js.map +1 -0
  114. package/dist/es/utils/request.js +234 -0
  115. package/dist/es/utils/request.js.map +1 -0
  116. package/dist/es/utils/response.js +20 -0
  117. package/dist/es/utils/response.js.map +1 -0
  118. package/dist/index.d.ts +867 -0
  119. package/dist/index.js +60913 -0
  120. package/dist/index.js.map +1 -0
  121. package/dist/index.min.js +130 -0
  122. package/dist/index.min.js.map +1 -0
  123. package/dist/lib/Exception/BaseException.js +37 -0
  124. package/dist/lib/Exception/BaseException.js.map +1 -0
  125. package/dist/lib/Exception/DownloadException.js +65 -0
  126. package/dist/lib/Exception/DownloadException.js.map +1 -0
  127. package/dist/lib/Exception/HttpException.js +75 -0
  128. package/dist/lib/Exception/HttpException.js.map +1 -0
  129. package/dist/lib/Exception/InitException.js +73 -0
  130. package/dist/lib/Exception/InitException.js.map +1 -0
  131. package/dist/lib/Exception/UploadException.js +75 -0
  132. package/dist/lib/Exception/UploadException.js.map +1 -0
  133. package/dist/lib/index.d.cts +867 -0
  134. package/dist/lib/index.js +203 -0
  135. package/dist/lib/index.js.map +1 -0
  136. package/dist/lib/modules/Kodo/defaultUpload.js +61 -0
  137. package/dist/lib/modules/Kodo/defaultUpload.js.map +1 -0
  138. package/dist/lib/modules/Kodo/index.js +28 -0
  139. package/dist/lib/modules/Kodo/index.js.map +1 -0
  140. package/dist/lib/modules/Local/index.js +50 -0
  141. package/dist/lib/modules/Local/index.js.map +1 -0
  142. package/dist/lib/modules/MinIO/MultipartUpload.js +357 -0
  143. package/dist/lib/modules/MinIO/MultipartUpload.js.map +1 -0
  144. package/dist/lib/modules/MinIO/STSUpload.js +33 -0
  145. package/dist/lib/modules/MinIO/STSUpload.js.map +1 -0
  146. package/dist/lib/modules/MinIO/defaultUpload.js +158 -0
  147. package/dist/lib/modules/MinIO/defaultUpload.js.map +1 -0
  148. package/dist/lib/modules/MinIO/index.js +35 -0
  149. package/dist/lib/modules/MinIO/index.js.map +1 -0
  150. package/dist/lib/modules/OBS/MultipartUpload.js +296 -0
  151. package/dist/lib/modules/OBS/MultipartUpload.js.map +1 -0
  152. package/dist/lib/modules/OBS/STSUpload.js +104 -0
  153. package/dist/lib/modules/OBS/STSUpload.js.map +1 -0
  154. package/dist/lib/modules/OBS/defaultUpload.js +88 -0
  155. package/dist/lib/modules/OBS/defaultUpload.js.map +1 -0
  156. package/dist/lib/modules/OBS/index.js +45 -0
  157. package/dist/lib/modules/OBS/index.js.map +1 -0
  158. package/dist/lib/modules/OBS/utils/index.js +49 -0
  159. package/dist/lib/modules/OBS/utils/index.js.map +1 -0
  160. package/dist/lib/modules/OSS/MultipartUpload.js +259 -0
  161. package/dist/lib/modules/OSS/MultipartUpload.js.map +1 -0
  162. package/dist/lib/modules/OSS/STSUpload.js +71 -0
  163. package/dist/lib/modules/OSS/STSUpload.js.map +1 -0
  164. package/dist/lib/modules/OSS/defaultUpload.js +76 -0
  165. package/dist/lib/modules/OSS/defaultUpload.js.map +1 -0
  166. package/dist/lib/modules/OSS/index.js +35 -0
  167. package/dist/lib/modules/OSS/index.js.map +1 -0
  168. package/dist/lib/modules/OSS/utils/helper.js +173 -0
  169. package/dist/lib/modules/OSS/utils/helper.js.map +1 -0
  170. package/dist/lib/modules/OSS/utils/signature.js +132 -0
  171. package/dist/lib/modules/OSS/utils/signature.js.map +1 -0
  172. package/dist/lib/modules/TOS/MultipartUpload.js +315 -0
  173. package/dist/lib/modules/TOS/MultipartUpload.js.map +1 -0
  174. package/dist/lib/modules/TOS/STSUpload.js +125 -0
  175. package/dist/lib/modules/TOS/STSUpload.js.map +1 -0
  176. package/dist/lib/modules/TOS/defaultUpload.js +94 -0
  177. package/dist/lib/modules/TOS/defaultUpload.js.map +1 -0
  178. package/dist/lib/modules/TOS/index.js +45 -0
  179. package/dist/lib/modules/TOS/index.js.map +1 -0
  180. package/dist/lib/modules/TOS/utils/TosClientError.js +34 -0
  181. package/dist/lib/modules/TOS/utils/TosClientError.js.map +1 -0
  182. package/dist/lib/modules/TOS/utils/index.js +64 -0
  183. package/dist/lib/modules/TOS/utils/index.js.map +1 -0
  184. package/dist/lib/modules/TOS/utils/signatureV4.js +294 -0
  185. package/dist/lib/modules/TOS/utils/signatureV4.js.map +1 -0
  186. package/dist/lib/modules/TOS/utils/signatureV4Credentials.js +44 -0
  187. package/dist/lib/modules/TOS/utils/signatureV4Credentials.js.map +1 -0
  188. package/dist/lib/modules/TOS/utils/universal/crypto.browser.js +93 -0
  189. package/dist/lib/modules/TOS/utils/universal/crypto.browser.js.map +1 -0
  190. package/dist/lib/modules/TOS/utils/utils.js +42 -0
  191. package/dist/lib/modules/TOS/utils/utils.js.map +1 -0
  192. package/dist/lib/modules/index.js +50 -0
  193. package/dist/lib/modules/index.js.map +1 -0
  194. package/dist/lib/types/Kodo.js +17 -0
  195. package/dist/lib/types/Kodo.js.map +1 -0
  196. package/dist/lib/types/Local.js +17 -0
  197. package/dist/lib/types/Local.js.map +1 -0
  198. package/dist/lib/types/MinIO.js +17 -0
  199. package/dist/lib/types/MinIO.js.map +1 -0
  200. package/dist/lib/types/OBS.js +32 -0
  201. package/dist/lib/types/OBS.js.map +1 -0
  202. package/dist/lib/types/OSS.js +17 -0
  203. package/dist/lib/types/OSS.js.map +1 -0
  204. package/dist/lib/types/TOS.js +17 -0
  205. package/dist/lib/types/TOS.js.map +1 -0
  206. package/dist/lib/types/error.js +17 -0
  207. package/dist/lib/types/error.js.map +1 -0
  208. package/dist/lib/types/index.js +37 -0
  209. package/dist/lib/types/index.js.map +1 -0
  210. package/dist/lib/types/log.js +17 -0
  211. package/dist/lib/types/log.js.map +1 -0
  212. package/dist/lib/types/request.js +17 -0
  213. package/dist/lib/types/request.js.map +1 -0
  214. package/dist/lib/utils/EventEmitter.js +51 -0
  215. package/dist/lib/utils/EventEmitter.js.map +1 -0
  216. package/dist/lib/utils/UploadManger.js +309 -0
  217. package/dist/lib/utils/UploadManger.js.map +1 -0
  218. package/dist/lib/utils/UploadTask.js +32 -0
  219. package/dist/lib/utils/UploadTask.js.map +1 -0
  220. package/dist/lib/utils/checkDataFormat.js +70 -0
  221. package/dist/lib/utils/checkDataFormat.js.map +1 -0
  222. package/dist/lib/utils/global.js +106 -0
  223. package/dist/lib/utils/global.js.map +1 -0
  224. package/dist/lib/utils/index.js +44 -0
  225. package/dist/lib/utils/index.js.map +1 -0
  226. package/dist/lib/utils/logPubSub.js +78 -0
  227. package/dist/lib/utils/logPubSub.js.map +1 -0
  228. package/dist/lib/utils/multipart.js +197 -0
  229. package/dist/lib/utils/multipart.js.map +1 -0
  230. package/dist/lib/utils/nanoid.js +33 -0
  231. package/dist/lib/utils/nanoid.js.map +1 -0
  232. package/dist/lib/utils/regExpUtil.js +44 -0
  233. package/dist/lib/utils/regExpUtil.js.map +1 -0
  234. package/dist/lib/utils/request.js +264 -0
  235. package/dist/lib/utils/request.js.map +1 -0
  236. package/dist/lib/utils/response.js +43 -0
  237. package/dist/lib/utils/response.js.map +1 -0
  238. package/dist/package.json +120 -0
  239. package/package.json +120 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/modules/MinIO/index.ts"],"sourcesContent":["import type {\n\tPlatformMultipartUploadOption,\n\tPlatformRequest,\n\tPlatformSimpleUploadOption,\n} from \"../../types\"\nimport type { MinIO } from \"../../types/MinIO\"\nimport { MultipartUpload } from \"./MultipartUpload\"\nimport { STSUpload } from \"./STSUpload\"\nimport { defaultUpload, signedUpload } from \"./defaultUpload\"\n\n/**\n * S3 upload main entry point\n * Automatically selects the appropriate upload method based on authentication parameters\n */\nconst upload: PlatformRequest<\n\tMinIO.AuthParams | MinIO.STSAuthParams,\n\tPlatformSimpleUploadOption | PlatformMultipartUploadOption\n> = (file, key, params, option) => {\n\t// Check if using STS credentials (AccessKey/SecretKey)\n\tif (Object.prototype.hasOwnProperty.call(params, \"credentials\")) {\n\t\t// Use multipart upload for STS credentials\n\t\treturn MultipartUpload(file, key, <MinIO.STSAuthParams>params, option)\n\t}\n\n\t// Use pre-signed URL upload\n\treturn defaultUpload(file, key, <MinIO.AuthParams>params, option)\n}\n\nexport default { upload, defaultUpload, signedUpload, MultipartUpload, STSUpload }\n\n\n\n\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,6BAAgC;AAChC,uBAA0B;AAC1B,2BAA4C;AAM5C,MAAM,SAGF,wBAAC,MAAM,KAAK,QAAQ,WAAW;AAElC,MAAI,OAAO,UAAU,eAAe,KAAK,QAAQ,aAAa,GAAG;AAEhE,eAAO,wCAAgB,MAAM,KAA0B,QAAQ,MAAM;AAAA,EACtE;AAGA,aAAO,oCAAc,MAAM,KAAuB,QAAQ,MAAM;AACjE,GATI;AAWJ,IAAO,gBAAQ,EAAE,QAAQ,mDAAe,iDAAc,yDAAiB,sCAAU;","names":[]}
@@ -0,0 +1,296 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+ var MultipartUpload_exports = {};
31
+ __export(MultipartUpload_exports, {
32
+ MultipartUpload: () => MultipartUpload
33
+ });
34
+ module.exports = __toCommonJS(MultipartUpload_exports);
35
+ var import_esdk_obs_browserjs = __toESM(require("esdk-obs-browserjs"), 1);
36
+ var import_mime = __toESM(require("mime"), 1);
37
+ var import_InitException = require("../../Exception/InitException");
38
+ var import_UploadException = require("../../Exception/UploadException");
39
+ var import_types = require("../../types");
40
+ var import_checkDataFormat = require("../../utils/checkDataFormat");
41
+ var import_multipart = require("../../utils/multipart");
42
+ var import_utils = require("./utils");
43
+ var import_regExpUtil = require("../../utils/regExpUtil");
44
+ var import_response = require("../../utils/response");
45
+ var import_STSUpload = require("./STSUpload");
46
+ var import_request = require("../../utils/request");
47
+ async function initMultipartUpload(key, obsClient, { bucket, expires }, options) {
48
+ const { SignedUrl, ActualSignedRequestHeaders } = obsClient.createSignedUrlSync({
49
+ Method: "POST",
50
+ Bucket: bucket,
51
+ Key: key,
52
+ SpecialParam: "uploads",
53
+ Expires: expires
54
+ });
55
+ const {
56
+ data: { InitiateMultipartUploadResult }
57
+ } = await (0, import_request.request)({
58
+ url: SignedUrl,
59
+ headers: ActualSignedRequestHeaders,
60
+ method: "POST",
61
+ xmlResponse: true,
62
+ ...options
63
+ });
64
+ return {
65
+ res: InitiateMultipartUploadResult,
66
+ bucket: InitiateMultipartUploadResult.Bucket,
67
+ name: InitiateMultipartUploadResult.Key,
68
+ UploadId: InitiateMultipartUploadResult.UploadId
69
+ };
70
+ }
71
+ __name(initMultipartUpload, "initMultipartUpload");
72
+ async function completeMultipartUpload(name, UploadId, parts, obsClient, { bucket }, { progress, partSize }) {
73
+ const completeParts = parts.concat().sort((a, b) => a.number - b.number).filter((item, index, arr) => !index || item.number !== arr[index - 1].number).map((item) => ({
74
+ PartNumber: item.number,
75
+ ETag: item.etag
76
+ }));
77
+ return new Promise((resolve, reject) => {
78
+ obsClient.completeMultipartUpload(
79
+ {
80
+ Bucket: bucket,
81
+ Key: name,
82
+ UploadId,
83
+ Parts: completeParts
84
+ },
85
+ (err, result) => {
86
+ if (err) {
87
+ reject(err);
88
+ } else {
89
+ if (progress && partSize) {
90
+ progress(100, parts.length * partSize, parts.length * partSize, null);
91
+ }
92
+ resolve(
93
+ (0, import_response.normalizeSuccessResponse)(
94
+ result.InterfaceResult.Key,
95
+ import_types.PlatformType.OBS,
96
+ result.InterfaceResult
97
+ )
98
+ );
99
+ }
100
+ }
101
+ );
102
+ });
103
+ }
104
+ __name(completeMultipartUpload, "completeMultipartUpload");
105
+ async function uploadPart(key, UploadId, partNo, data, obsClient, { bucket, expires }, options) {
106
+ const { SignedUrl, ActualSignedRequestHeaders } = obsClient.createSignedUrlSync({
107
+ Method: "PUT",
108
+ Bucket: bucket,
109
+ Key: key,
110
+ QueryParams: {
111
+ partNumber: `${partNo}`,
112
+ UploadId
113
+ },
114
+ Expires: expires
115
+ });
116
+ const result = await (0, import_request.request)({
117
+ url: SignedUrl,
118
+ method: "PUT",
119
+ data: data.content,
120
+ headers: ActualSignedRequestHeaders,
121
+ taskId: `${partNo}`,
122
+ ...options
123
+ });
124
+ if (!result.headers.etag) {
125
+ throw new import_InitException.InitException(import_InitException.InitExceptionCode.UPLOAD_HEAD_NO_EXPOSE_ETAG);
126
+ }
127
+ return {
128
+ name: key,
129
+ etag: result.headers.etag,
130
+ res: result
131
+ };
132
+ }
133
+ __name(uploadPart, "uploadPart");
134
+ async function resumeMultipart(checkpoint, obsClient, params, options) {
135
+ const { file, fileSize, partSize, UploadId, doneParts, name } = checkpoint;
136
+ const internalDoneParts = doneParts.length > 0 ? [...doneParts] : [];
137
+ const partOffs = (0, import_multipart.divideParts)(fileSize, partSize);
138
+ const numParts = partOffs.length;
139
+ let multipartFinish = false;
140
+ const opt = { ...options, partSize };
141
+ const uploadPartJob = /* @__PURE__ */ __name((partNo) => (
142
+ // eslint-disable-next-line no-async-promise-executor
143
+ new Promise(async (resolve, reject) => {
144
+ try {
145
+ const pi = partOffs[partNo - 1];
146
+ const content = await (0, import_multipart.createBuffer)(file, pi.start, pi.end);
147
+ const data = {
148
+ content,
149
+ size: pi.end - pi.start
150
+ };
151
+ const result = await uploadPart(name, UploadId, partNo, data, obsClient, params, {
152
+ ...opt
153
+ });
154
+ if (!multipartFinish) {
155
+ checkpoint.doneParts.push({
156
+ number: partNo,
157
+ etag: result.etag
158
+ });
159
+ if (typeof options.progress === "function") {
160
+ console.log(11);
161
+ options.progress(
162
+ doneParts.length / (numParts + 1) * 100,
163
+ doneParts.length * partSize,
164
+ fileSize,
165
+ checkpoint
166
+ );
167
+ }
168
+ resolve({
169
+ number: partNo,
170
+ etag: result.etag
171
+ });
172
+ } else {
173
+ resolve();
174
+ }
175
+ } catch (err) {
176
+ const tempErr = new Error();
177
+ tempErr.name = err.name;
178
+ tempErr.message = err.message;
179
+ tempErr.stack = err.stack;
180
+ tempErr.partNum = partNo;
181
+ tempErr.status = err.status;
182
+ reject(tempErr);
183
+ }
184
+ })
185
+ ), "uploadPartJob");
186
+ const all = Array.from(new Array(numParts), (_, i) => i + 1);
187
+ const done = internalDoneParts.map((p) => p.number);
188
+ const todo = all.filter((p) => done.indexOf(p) < 0);
189
+ const defaultParallel = 5;
190
+ const parallel = opt.parallel || defaultParallel;
191
+ const jobErr = await (0, import_multipart.parallelSend)(
192
+ todo,
193
+ parallel,
194
+ (value) => new Promise((resolve, reject) => {
195
+ uploadPartJob(value).then((result) => {
196
+ if (result) {
197
+ internalDoneParts.push(result);
198
+ }
199
+ resolve();
200
+ }).catch((err) => {
201
+ reject(err);
202
+ });
203
+ })
204
+ );
205
+ multipartFinish = true;
206
+ if (jobErr && jobErr.length > 0) {
207
+ const error = jobErr[0];
208
+ if (error.status === 5001 || error.status === 5002) {
209
+ throw error;
210
+ }
211
+ throw new import_UploadException.UploadException(
212
+ import_UploadException.UploadExceptionCode.UPLOAD_MULTIPART_ERROR,
213
+ error.message.replace("[Uploader] ", ""),
214
+ error.partNum
215
+ );
216
+ }
217
+ return completeMultipartUpload(name, UploadId, internalDoneParts, obsClient, params, opt);
218
+ }
219
+ __name(resumeMultipart, "resumeMultipart");
220
+ const MultipartUpload = /* @__PURE__ */ __name(async (file, key, params, option) => {
221
+ const options = { ...option };
222
+ const {
223
+ endpoint,
224
+ region,
225
+ bucket,
226
+ dir,
227
+ credentials: { access, secret, security_token }
228
+ } = params;
229
+ if (!region || !bucket || !dir || !endpoint || !access || !secret || !security_token) {
230
+ throw new import_InitException.InitException(
231
+ import_InitException.InitExceptionCode.MISSING_CREDENTIALS_PARAMS_FOR_UPLOAD,
232
+ "volcEngine",
233
+ "region",
234
+ "bucket",
235
+ "dir",
236
+ "endpoint",
237
+ "access_key_id",
238
+ "secret_access_key",
239
+ "security_token"
240
+ );
241
+ }
242
+ const name = `${dir}${key}`;
243
+ const obsClient = new import_esdk_obs_browserjs.default({
244
+ access_key_id: access,
245
+ secret_access_key: secret,
246
+ security_token,
247
+ server: endpoint
248
+ });
249
+ if (!options.mime) {
250
+ if ((0, import_checkDataFormat.isFile)(file)) {
251
+ options.mime = file.type;
252
+ } else if ((0, import_checkDataFormat.isBlob)(file)) {
253
+ options.mime = file.type;
254
+ } else {
255
+ options.mime = import_mime.default.getType((0, import_regExpUtil.parseExtname)(name));
256
+ }
257
+ }
258
+ if (options.checkpoint && options.checkpoint.UploadId) {
259
+ if (file && (0, import_checkDataFormat.isFile)(file))
260
+ options.checkpoint.file = file;
261
+ if (file)
262
+ options.checkpoint.file = file;
263
+ return resumeMultipart(options.checkpoint, obsClient, params, {
264
+ ...options
265
+ });
266
+ }
267
+ options.headers = options.headers || {};
268
+ const fileSize = file.size;
269
+ if (fileSize < import_utils.OBS_MIN_PART_SIZE) {
270
+ return (0, import_STSUpload.STSUpload)(file, key, params, { ...options });
271
+ }
272
+ if (options.partSize && !(parseInt(String(options.partSize), 10) === options.partSize)) {
273
+ throw new import_InitException.InitException(import_InitException.InitExceptionCode.UPLOAD_API_OPTION_PARTSIZE_MUST_INT);
274
+ }
275
+ if (options.partSize && options.partSize < import_utils.OBS_MIN_PART_SIZE) {
276
+ throw new import_InitException.InitException(
277
+ import_InitException.InitExceptionCode.UPLOAD_API_OPTION_PARTSIZE_IS_SMALL,
278
+ import_utils.OBS_MIN_PART_SIZE
279
+ );
280
+ }
281
+ const { UploadId } = await initMultipartUpload(name, obsClient, params, {
282
+ headers: { ...options.headers },
283
+ mime: options.mime
284
+ });
285
+ const partSize = (0, import_multipart.getPartSize)(fileSize, options.partSize, import_utils.OBS_MIN_PART_SIZE);
286
+ const checkpoint = (0, import_multipart.initCheckpoint)(file, name, fileSize, partSize, UploadId);
287
+ if (options && options.progress) {
288
+ options.progress(0, 0, fileSize, checkpoint);
289
+ }
290
+ return resumeMultipart(checkpoint, obsClient, params, { ...options });
291
+ }, "MultipartUpload");
292
+ // Annotate the CommonJS export names for ESM import in node:
293
+ 0 && (module.exports = {
294
+ MultipartUpload
295
+ });
296
+ //# sourceMappingURL=MultipartUpload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/modules/OBS/MultipartUpload.ts"],"sourcesContent":["import ObsClient from \"esdk-obs-browserjs\"\nimport mime from \"mime\"\nimport { InitException, InitExceptionCode } from \"../../Exception/InitException\"\nimport { UploadException, UploadExceptionCode } from \"../../Exception/UploadException\"\nimport type {\n\tCheckpoint,\n\tDonePart,\n\tNormalSuccessResponse,\n\tPlatformMultipartUploadOption,\n\tPlatformRequest,\n} from \"../../types\"\nimport { PlatformType } from \"../../types\"\nimport type { ErrorType } from \"../../types/error\"\nimport type { OBS } from \"../../types/OBS\"\nimport { isBlob, isFile } from \"../../utils/checkDataFormat\"\nimport {\n\tcreateBuffer,\n\tdivideParts,\n\tgetPartSize,\n\tinitCheckpoint,\n\tparallelSend,\n} from \"../../utils/multipart\"\nimport { OBS_MIN_PART_SIZE } from \"./utils\"\nimport { parseExtname } from \"../../utils/regExpUtil\"\nimport { normalizeSuccessResponse } from \"../../utils/response\"\nimport { STSUpload } from \"./STSUpload\"\nimport type { DataWrapperWithHeaders } from \"../../types/request\"\nimport { request } from \"../../utils/request\"\n\n/**\n * Multipart upload initialization to obtain UploadId from OBS\n * @param key File name (with path)\n * @param obsClient OBS upload client\n * @param param2 Upload credential info\n * @param param3 Upload configuration\n * @returns\n */\nasync function initMultipartUpload(\n\tkey: string,\n\tobsClient: ObsClient,\n\t{ bucket, expires }: OBS.STSAuthParams,\n\toptions: OBS.InitMultipartUploadOption,\n) {\n\tconst { SignedUrl, ActualSignedRequestHeaders } = obsClient.createSignedUrlSync({\n\t\tMethod: \"POST\",\n\t\tBucket: bucket,\n\t\tKey: key,\n\t\tSpecialParam: \"uploads\",\n\t\tExpires: expires,\n\t})\n\n\tconst {\n\t\tdata: { InitiateMultipartUploadResult },\n\t} = await request<DataWrapperWithHeaders<OBS.InitMultipartUploadResponse>>({\n\t\turl: SignedUrl,\n\t\theaders: ActualSignedRequestHeaders,\n\t\tmethod: \"POST\",\n\t\txmlResponse: true,\n\t\t...options,\n\t})\n\n\treturn {\n\t\tres: InitiateMultipartUploadResult,\n\t\tbucket: InitiateMultipartUploadResult.Bucket,\n\t\tname: InitiateMultipartUploadResult.Key,\n\t\tUploadId: InitiateMultipartUploadResult.UploadId,\n\t}\n}\n\n/**\n * After multipart upload is done, call this to complete it\n * @param name File name\n * @param UploadId Upload ID\n * @param parts Uploaded parts\n * @param obsClient OBS upload client\n * @param param4 Upload credential\n * @returns\n */\nasync function completeMultipartUpload(\n\tname: string,\n\tUploadId: string,\n\tparts: Array<OBS.UploadPart>,\n\tobsClient: ObsClient,\n\t{ bucket }: OBS.STSAuthParams,\n\t{ progress, partSize }: PlatformMultipartUploadOption,\n) {\n\tconst completeParts = parts\n\t\t.concat()\n\t\t.sort((a, b) => a.number - b.number)\n\t\t.filter((item, index, arr) => !index || item.number !== arr[index - 1].number)\n\t\t.map((item) => ({\n\t\t\tPartNumber: item.number,\n\t\t\tETag: item.etag,\n\t\t}))\n\n\treturn new Promise<NormalSuccessResponse>((resolve, reject) => {\n\t\tobsClient.completeMultipartUpload(\n\t\t\t{\n\t\t\t\tBucket: bucket,\n\t\t\t\tKey: name,\n\t\t\t\tUploadId: UploadId,\n\t\t\t\tParts: completeParts,\n\t\t\t},\n\t\t\t(err: unknown, result: OBS.CompleteMultipartUploadResponse) => {\n\t\t\t\tif (err) {\n\t\t\t\t\treject(err)\n\t\t\t\t} else {\n\t\t\t\t\tif (progress && partSize) {\n\t\t\t\t\t\tprogress(100, parts.length * partSize, parts.length * partSize, null)\n\t\t\t\t\t}\n\n\t\t\t\t\tresolve(\n\t\t\t\t\t\tnormalizeSuccessResponse(\n\t\t\t\t\t\t\tresult.InterfaceResult.Key,\n\t\t\t\t\t\t\tPlatformType.OBS,\n\t\t\t\t\t\t\tresult.InterfaceResult,\n\t\t\t\t\t\t),\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t},\n\t\t)\n\t})\n}\n\n/**\n * Used to upload a specific part\n * @param key File name (with path)\n * @param UploadId Upload ID\n * @param partNo Part number\n * @param data Part content\n * @param obsClient OBS upload client\n * @param param5 Upload credential\n * @returns\n */\nasync function uploadPart(\n\tkey: string,\n\tUploadId: string,\n\tpartNo: number,\n\tdata: OBS.PartInfo,\n\tobsClient: ObsClient,\n\t{ bucket, expires }: OBS.STSAuthParams,\n\toptions: PlatformMultipartUploadOption,\n) {\n\tconst { SignedUrl, ActualSignedRequestHeaders } = obsClient.createSignedUrlSync({\n\t\tMethod: \"PUT\",\n\t\tBucket: bucket,\n\t\tKey: key,\n\t\tQueryParams: {\n\t\t\tpartNumber: `${partNo}`,\n\t\t\tUploadId,\n\t\t},\n\t\tExpires: expires,\n\t})\n\n\tconst result = await request<OBS.UploadPartResponse>({\n\t\turl: SignedUrl,\n\t\tmethod: \"PUT\",\n\t\tdata: data.content,\n\t\theaders: ActualSignedRequestHeaders,\n\t\ttaskId: `${partNo}`,\n\t\t...options,\n\t})\n\n\tif (!result.headers.etag) {\n\t\tthrow new InitException(InitExceptionCode.UPLOAD_HEAD_NO_EXPOSE_ETAG)\n\t}\n\n\treturn {\n\t\tname: key,\n\t\tetag: result.headers.etag,\n\t\tres: result,\n\t}\n}\n\n/**\n * Used for multipart upload or ResumeCheckpoint resume\n * @param checkpoint Checkpoint\n * @param obsClient OBS upload client\n * @param params Upload credential\n * @param options Upload configuration\n * @returns\n */\nasync function resumeMultipart(\n\tcheckpoint: Checkpoint,\n\tobsClient: ObsClient,\n\tparams: OBS.STSAuthParams,\n\toptions: PlatformMultipartUploadOption,\n) {\n\tconst { file, fileSize, partSize, UploadId, doneParts, name } = checkpoint\n\tconst internalDoneParts = doneParts.length > 0 ? [...doneParts] : []\n\tconst partOffs = divideParts(fileSize, partSize)\n\tconst numParts = partOffs.length\n\tlet multipartFinish = false\n\tconst opt = { ...options, partSize }\n\tconst uploadPartJob = (partNo: number): Promise<void | DonePart> =>\n\t\t// eslint-disable-next-line no-async-promise-executor\n\t\tnew Promise(async (resolve, reject) => {\n\t\t\ttry {\n\t\t\t\tconst pi = partOffs[partNo - 1]\n\t\t\t\tconst content = await createBuffer(file, pi.start, pi.end)\n\t\t\t\tconst data = {\n\t\t\t\t\tcontent,\n\t\t\t\t\tsize: pi.end - pi.start,\n\t\t\t\t}\n\n\t\t\t\tconst result = await uploadPart(name, UploadId, partNo, data, obsClient, params, {\n\t\t\t\t\t...opt,\n\t\t\t\t})\n\n\t\t\t\tif (!multipartFinish) {\n\t\t\t\t\tcheckpoint.doneParts.push({\n\t\t\t\t\t\tnumber: partNo,\n\t\t\t\t\t\tetag: result.etag,\n\t\t\t\t\t})\n\n\t\t\t\t\tif (typeof options.progress === \"function\") {\n\t\t\t\t\t\tconsole.log(11)\n\t\t\t\t\t\toptions.progress(\n\t\t\t\t\t\t\t(doneParts.length / (numParts + 1)) * 100,\n\t\t\t\t\t\t\tdoneParts.length * partSize,\n\t\t\t\t\t\t\tfileSize,\n\t\t\t\t\t\t\tcheckpoint,\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\n\t\t\t\t\tresolve({\n\t\t\t\t\t\tnumber: partNo,\n\t\t\t\t\t\tetag: result.etag,\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\tresolve()\n\t\t\t\t}\n\t\t\t} catch (err: any) {\n\t\t\t\tconst tempErr = new Error() as unknown as ErrorType.UploadPartException\n\t\t\t\ttempErr.name = err.name\n\t\t\t\ttempErr.message = err.message\n\t\t\t\ttempErr.stack = err.stack\n\t\t\t\ttempErr.partNum = partNo\n\t\t\t\ttempErr.status = err.status\n\n\t\t\t\treject(tempErr)\n\t\t\t}\n\t\t})\n\n\tconst all = Array.from(new Array(numParts), (_, i) => i + 1)\n\tconst done = internalDoneParts.map((p) => p.number)\n\tconst todo = all.filter((p) => done.indexOf(p) < 0)\n\tconst defaultParallel = 5\n\tconst parallel = opt.parallel || defaultParallel\n\t// upload in parallel\n\tconst jobErr: ErrorType.UploadPartException[] = await parallelSend(\n\t\ttodo,\n\t\tparallel,\n\t\t(value) =>\n\t\t\tnew Promise((resolve, reject) => {\n\t\t\t\tuploadPartJob(value)\n\t\t\t\t\t.then((result: DonePart | void) => {\n\t\t\t\t\t\tif (result) {\n\t\t\t\t\t\t\tinternalDoneParts.push(result)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresolve()\n\t\t\t\t\t})\n\t\t\t\t\t.catch((err) => {\n\t\t\t\t\t\treject(err)\n\t\t\t\t\t})\n\t\t\t}),\n\t)\n\n\tmultipartFinish = true\n\n\tif (jobErr && jobErr.length > 0) {\n\t\tconst error = jobErr[0]\n\t\t// 5001 Cancel upload, 5002 Pause upload\n\t\tif (error.status === 5001 || error.status === 5002) {\n\t\t\tthrow error as Error\n\t\t}\n\t\tthrow new UploadException(\n\t\t\tUploadExceptionCode.UPLOAD_MULTIPART_ERROR,\n\t\t\terror.message.replace(\"[Uploader] \", \"\"),\n\t\t\terror.partNum,\n\t\t)\n\t}\n\n\treturn completeMultipartUpload(name, UploadId, internalDoneParts, obsClient, params, opt)\n}\n\n/**\n * Multipart upload interface, e.g., for part upload or Checkpoint resume\n * @param file File\n * @param key File name\n * @param params Credential parameters\n * @param option Upload parameters\n * @returns\n */\nexport const MultipartUpload: PlatformRequest<\n\tOBS.STSAuthParams,\n\tPlatformMultipartUploadOption\n> = async (\n\tfile: File | Blob,\n\tkey: string,\n\tparams: OBS.STSAuthParams,\n\toption: PlatformMultipartUploadOption,\n) => {\n\tconst options = { ...option }\n\tconst {\n\t\tendpoint,\n\t\tregion,\n\t\tbucket,\n\t\tdir,\n\t\tcredentials: { access, secret, security_token },\n\t} = params\n\n\tif (!region || !bucket || !dir || !endpoint || !access || !secret || !security_token) {\n\t\tthrow new InitException(\n\t\t\tInitExceptionCode.MISSING_CREDENTIALS_PARAMS_FOR_UPLOAD,\n\t\t\t\"volcEngine\",\n\t\t\t\"region\",\n\t\t\t\"bucket\",\n\t\t\t\"dir\",\n\t\t\t\"endpoint\",\n\t\t\t\"access_key_id\",\n\t\t\t\"secret_access_key\",\n\t\t\t\"security_token\",\n\t\t)\n\t}\n\n\tconst name = `${dir}${key}`\n\n\tconst obsClient = new ObsClient({\n\t\taccess_key_id: access,\n\t\tsecret_access_key: secret,\n\t\tsecurity_token,\n\t\tserver: endpoint,\n\t})\n\n\t// Generate File type\n\tif (!options.mime) {\n\t\tif (isFile(file)) {\n\t\t\toptions.mime = file.type\n\t\t} else if (isBlob(file)) {\n\t\t\toptions.mime = file.type\n\t\t} else {\n\t\t\toptions.mime = mime.getType(parseExtname(name))\n\t\t}\n\t}\n\n\tif (options.checkpoint && options.checkpoint.UploadId) {\n\t\tif (file && isFile(file)) options.checkpoint.file = file\n\t\tif (file) options.checkpoint.file = file\n\n\t\treturn resumeMultipart(options.checkpoint, obsClient, params, {\n\t\t\t...options,\n\t\t})\n\t}\n\n\toptions.headers = options.headers || {}\n\n\tconst fileSize = file.size\n\tif (fileSize < OBS_MIN_PART_SIZE) {\n\t\treturn STSUpload(file, key, params, { ...options })\n\t}\n\tif (options.partSize && !(parseInt(String(options.partSize), 10) === options.partSize)) {\n\t\tthrow new InitException(InitExceptionCode.UPLOAD_API_OPTION_PARTSIZE_MUST_INT)\n\t}\n\n\tif (options.partSize && options.partSize < OBS_MIN_PART_SIZE) {\n\t\tthrow new InitException(\n\t\t\tInitExceptionCode.UPLOAD_API_OPTION_PARTSIZE_IS_SMALL,\n\t\t\tOBS_MIN_PART_SIZE,\n\t\t)\n\t}\n\n\t// Initialize multipart upload\n\tconst { UploadId } = await initMultipartUpload(name, obsClient, params, {\n\t\theaders: { ...options.headers },\n\t\tmime: options.mime,\n\t})\n\n\t// Get part size\n\tconst partSize = getPartSize(fileSize, <number>options.partSize, OBS_MIN_PART_SIZE)\n\n\tconst checkpoint = initCheckpoint(file, name, fileSize, partSize, UploadId)\n\n\tif (options && options.progress) {\n\t\toptions.progress(0, 0, fileSize, checkpoint)\n\t}\n\n\treturn resumeMultipart(checkpoint, obsClient, params, { ...options })\n}\n\n\n\n\n"],"mappings":"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","names":["ObsClient","mime"]}
@@ -0,0 +1,104 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+ var STSUpload_exports = {};
31
+ __export(STSUpload_exports, {
32
+ STSUpload: () => STSUpload
33
+ });
34
+ module.exports = __toCommonJS(STSUpload_exports);
35
+ var import_esdk_obs_browserjs = __toESM(require("esdk-obs-browserjs"), 1);
36
+ var import_InitException = require("../../Exception/InitException");
37
+ var import_UploadException = require("../../Exception/UploadException");
38
+ var import_types = require("../../types");
39
+ var import_response = require("../../utils/response");
40
+ function STSUpload(file, key, params, option) {
41
+ const {
42
+ bucket,
43
+ credentials: { access, secret, security_token },
44
+ endpoint,
45
+ // callback,
46
+ dir,
47
+ region
48
+ } = params;
49
+ if (!bucket || !access || !secret || !security_token || !dir || !endpoint || !region) {
50
+ throw new import_InitException.InitException(
51
+ import_InitException.InitExceptionCode.MISSING_CREDENTIALS_PARAMS_FOR_UPLOAD,
52
+ "obs",
53
+ "bucket",
54
+ "access_key_id",
55
+ "secret_access_key",
56
+ "security_token",
57
+ "dir",
58
+ "server",
59
+ "region"
60
+ );
61
+ }
62
+ if (file?.size > 5 * 1024 * 1024 * 1024) {
63
+ throw new import_InitException.InitException(import_InitException.InitExceptionCode.UPLOAD_FILE_TO_BIG, key);
64
+ }
65
+ const combinedKey = `${dir}${key}`;
66
+ const obsClient = new import_esdk_obs_browserjs.default({
67
+ access_key_id: access,
68
+ secret_access_key: secret,
69
+ security_token,
70
+ server: endpoint
71
+ });
72
+ return new Promise((resolve, reject) => {
73
+ obsClient.putObject(
74
+ {
75
+ Bucket: bucket,
76
+ Key: combinedKey,
77
+ SourceFile: file
78
+ },
79
+ (err, data) => {
80
+ if (err) {
81
+ reject(new import_UploadException.UploadException(import_UploadException.UploadExceptionCode.UPLOAD_UNKNOWN_ERROR));
82
+ } else if (data.CommonMsg.Status < 300) {
83
+ resolve(
84
+ (0, import_response.normalizeSuccessResponse)(
85
+ combinedKey,
86
+ import_types.PlatformType.OBS,
87
+ data.InterfaceResult
88
+ )
89
+ );
90
+ } else if (data.CommonMsg.Status === 403) {
91
+ reject(new import_UploadException.UploadException(import_UploadException.UploadExceptionCode.UPLOAD_CREDENTIALS_IS_EXPIRED));
92
+ } else {
93
+ reject(new import_UploadException.UploadException(import_UploadException.UploadExceptionCode.UPLOAD_UNKNOWN_ERROR));
94
+ }
95
+ }
96
+ );
97
+ });
98
+ }
99
+ __name(STSUpload, "STSUpload");
100
+ // Annotate the CommonJS export names for ESM import in node:
101
+ 0 && (module.exports = {
102
+ STSUpload
103
+ });
104
+ //# sourceMappingURL=STSUpload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/modules/OBS/STSUpload.ts"],"sourcesContent":["import ObsClient from \"esdk-obs-browserjs\"\nimport { InitException, InitExceptionCode } from \"../../Exception/InitException\"\nimport { UploadException, UploadExceptionCode } from \"../../Exception/UploadException\"\nimport type {\n\tNormalSuccessResponse,\n\tPlatformMultipartUploadOption,\n\tPlatformSimpleUploadOption,\n} from \"../../types\"\nimport { PlatformType } from \"../../types\"\nimport type { OBS } from \"../../types/OBS\"\nimport { normalizeSuccessResponse } from \"../../utils/response\"\n\n/**\n * Huawei Cloud PUT upload\n * @param file File\n * @param key File name\n * @param params Upload credential parameters\n * @param option Upload configuration\n * @returns\n */\nexport function STSUpload(\n\tfile: File | Blob,\n\tkey: string,\n\tparams: OBS.STSAuthParams,\n\t// @ts-ignore\n\toption: PlatformSimpleUploadOption | PlatformMultipartUploadOption,\n): Promise<NormalSuccessResponse> {\n\tconst {\n\t\tbucket,\n\t\tcredentials: { access, secret, security_token },\n\t\tendpoint,\n\t\t// callback,\n\t\tdir,\n\t\tregion,\n\t} = params\n\n\tif (!bucket || !access || !secret || !security_token || !dir || !endpoint || !region) {\n\t\tthrow new InitException(\n\t\t\tInitExceptionCode.MISSING_CREDENTIALS_PARAMS_FOR_UPLOAD,\n\t\t\t\"obs\",\n\t\t\t\"bucket\",\n\t\t\t\"access_key_id\",\n\t\t\t\"secret_access_key\",\n\t\t\t\"security_token\",\n\t\t\t\"dir\",\n\t\t\t\"server\",\n\t\t\t\"region\",\n\t\t)\n\t}\n\n\t// Huawei Cloud PutObject upload limit 5GB\n\tif (file?.size > 5 * 1024 * 1024 * 1024) {\n\t\tthrow new InitException(InitExceptionCode.UPLOAD_FILE_TO_BIG, key)\n\t}\n\n\tconst combinedKey = `${dir}${key}`\n\n\tconst obsClient = new ObsClient({\n\t\taccess_key_id: access,\n\t\tsecret_access_key: secret,\n\t\tsecurity_token,\n\t\tserver: endpoint,\n\t})\n\n\treturn new Promise((resolve, reject) => {\n\t\tobsClient.putObject(\n\t\t\t{\n\t\t\t\tBucket: bucket,\n\t\t\t\tKey: combinedKey,\n\t\t\t\tSourceFile: file,\n\t\t\t},\n\t\t\t(err: any, data: OBS.PutResponseData) => {\n\t\t\t\tif (err) {\n\t\t\t\t\treject(new UploadException(UploadExceptionCode.UPLOAD_UNKNOWN_ERROR))\n\t\t\t\t} else if (data.CommonMsg.Status < 300) {\n\t\t\t\t\tresolve(\n\t\t\t\t\t\tnormalizeSuccessResponse(\n\t\t\t\t\t\t\tcombinedKey,\n\t\t\t\t\t\t\tPlatformType.OBS,\n\t\t\t\t\t\t\tdata.InterfaceResult,\n\t\t\t\t\t\t),\n\t\t\t\t\t)\n\t\t\t\t} else if (data.CommonMsg.Status === 403) {\n\t\t\t\t\treject(new UploadException(UploadExceptionCode.UPLOAD_CREDENTIALS_IS_EXPIRED))\n\t\t\t\t} else {\n\t\t\t\t\treject(new UploadException(UploadExceptionCode.UPLOAD_UNKNOWN_ERROR))\n\t\t\t\t}\n\t\t\t},\n\t\t)\n\t})\n}\n\n\n\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAC,gCAAsB;AACvB,2BAAiD;AACjD,6BAAqD;AAMrD,mBAA6B;AAE7B,sBAAyC;AAUlC,SAAS,UACf,MACA,KACA,QAEA,QACiC;AACjC,QAAM;AAAA,IACL;AAAA,IACA,aAAa,EAAE,QAAQ,QAAQ,eAAe;AAAA,IAC9C;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,EACD,IAAI;AAEJ,MAAI,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,kBAAkB,CAAC,OAAO,CAAC,YAAY,CAAC,QAAQ;AACrF,UAAM,IAAI;AAAA,MACT,uCAAkB;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAGA,MAAI,MAAM,OAAO,IAAI,OAAO,OAAO,MAAM;AACxC,UAAM,IAAI,mCAAc,uCAAkB,oBAAoB,GAAG;AAAA,EAClE;AAEA,QAAM,cAAc,GAAG,GAAG,GAAG,GAAG;AAEhC,QAAM,YAAY,IAAI,0BAAAA,QAAU;AAAA,IAC/B,eAAe;AAAA,IACf,mBAAmB;AAAA,IACnB;AAAA,IACA,QAAQ;AAAA,EACT,CAAC;AAED,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACvC,cAAU;AAAA,MACT;AAAA,QACC,QAAQ;AAAA,QACR,KAAK;AAAA,QACL,YAAY;AAAA,MACb;AAAA,MACA,CAAC,KAAU,SAA8B;AACxC,YAAI,KAAK;AACR,iBAAO,IAAI,uCAAgB,2CAAoB,oBAAoB,CAAC;AAAA,QACrE,WAAW,KAAK,UAAU,SAAS,KAAK;AACvC;AAAA,gBACC;AAAA,cACC;AAAA,cACA,0BAAa;AAAA,cACb,KAAK;AAAA,YACN;AAAA,UACD;AAAA,QACD,WAAW,KAAK,UAAU,WAAW,KAAK;AACzC,iBAAO,IAAI,uCAAgB,2CAAoB,6BAA6B,CAAC;AAAA,QAC9E,OAAO;AACN,iBAAO,IAAI,uCAAgB,2CAAoB,oBAAoB,CAAC;AAAA,QACrE;AAAA,MACD;AAAA,IACD;AAAA,EACD,CAAC;AACF;AAtEgB;","names":["ObsClient"]}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+ var defaultUpload_exports = {};
31
+ __export(defaultUpload_exports, {
32
+ default: () => defaultUpload_default
33
+ });
34
+ module.exports = __toCommonJS(defaultUpload_exports);
35
+ var import_mime = __toESM(require("mime"), 1);
36
+ var import_InitException = require("../../Exception/InitException");
37
+ var import_UploadException = require("../../Exception/UploadException");
38
+ var import_types = require("../../types");
39
+ var import_regExpUtil = require("../../utils/regExpUtil");
40
+ var import_request = require("../../utils/request");
41
+ var import_response = require("../../utils/response");
42
+ const defaultUpload = /* @__PURE__ */ __name((file, key, params, option) => {
43
+ const { AccessKeyId, policy, signature, host, dir, "content-type": contentType } = params;
44
+ if (!policy || !AccessKeyId || !signature || !host || !dir) {
45
+ throw new import_InitException.InitException(
46
+ import_InitException.InitExceptionCode.MISSING_CREDENTIALS_PARAMS_FOR_UPLOAD,
47
+ "volcEngine",
48
+ "policy",
49
+ "AccessKeyId",
50
+ "signature",
51
+ "host",
52
+ "dir"
53
+ );
54
+ }
55
+ if (file?.size > 5 * 1024 * 1024 * 1024) {
56
+ throw new import_InitException.InitException(import_InitException.InitExceptionCode.UPLOAD_FILE_TO_BIG, key);
57
+ }
58
+ const combinedKey = `${dir}${key}`;
59
+ const formData = new FormData();
60
+ formData.append("key", combinedKey);
61
+ if (contentType && contentType !== "") {
62
+ const fileMimeType = import_mime.default.getType((0, import_regExpUtil.parseExtname)(key));
63
+ formData.append("Content-Type", fileMimeType || contentType);
64
+ }
65
+ formData.append("policy", policy);
66
+ formData.append("AccessKeyId", AccessKeyId);
67
+ formData.append("signature", signature);
68
+ formData.append("file", file);
69
+ return (0, import_request.request)({
70
+ method: "post",
71
+ url: host,
72
+ data: formData,
73
+ headers: option?.headers ? option?.headers : {},
74
+ taskId: option.taskId,
75
+ onProgress: option?.progress ? option.progress : () => {
76
+ },
77
+ withoutWrapper: true,
78
+ fail: (status, reject) => {
79
+ if (status === 403) {
80
+ reject(new import_UploadException.UploadException(import_UploadException.UploadExceptionCode.UPLOAD_CREDENTIALS_IS_EXPIRED));
81
+ }
82
+ }
83
+ }).then((res) => {
84
+ return (0, import_response.normalizeSuccessResponse)(combinedKey, import_types.PlatformType.OBS, res.headers);
85
+ });
86
+ }, "defaultUpload");
87
+ var defaultUpload_default = defaultUpload;
88
+ //# sourceMappingURL=defaultUpload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/modules/OBS/defaultUpload.ts"],"sourcesContent":["import mime from \"mime\"\nimport { InitException, InitExceptionCode } from \"../../Exception/InitException\"\nimport { UploadException, UploadExceptionCode } from \"../../Exception/UploadException\"\nimport type { PlatformRequest, PlatformSimpleUploadOption } from \"../../types\"\nimport { PlatformType } from \"../../types\"\nimport type { TOS } from \"../../types/TOS\"\nimport { parseExtname } from \"../../utils/regExpUtil\"\nimport { request } from \"../../utils/request\"\nimport { normalizeSuccessResponse } from \"../../utils/response\"\nimport type { OBS } from \"../../types/OBS\"\n\n/**\n * @description: Simple upload POST request\n * @param {File | Blob} file File\n * @param {String} key File name\n * @param {TOS.AuthParams} params Upload credential info\n * @param {PlatformSimpleUploadOption} option Configuration field\n */\nconst defaultUpload: PlatformRequest<OBS.AuthParams, PlatformSimpleUploadOption> = (\n\tfile,\n\tkey,\n\tparams,\n\toption,\n) => {\n\tconst { AccessKeyId, policy, signature, host, dir, \"content-type\": contentType } = params\n\n\tif (!policy || !AccessKeyId || !signature || !host || !dir) {\n\t\tthrow new InitException(\n\t\t\tInitExceptionCode.MISSING_CREDENTIALS_PARAMS_FOR_UPLOAD,\n\t\t\t\"volcEngine\",\n\t\t\t\"policy\",\n\t\t\t\"AccessKeyId\",\n\t\t\t\"signature\",\n\t\t\t\"host\",\n\t\t\t\"dir\",\n\t\t)\n\t}\n\n\t// Huawei Cloud PostObject upload limit 5GB\n\tif (file?.size > 5 * 1024 * 1024 * 1024) {\n\t\tthrow new InitException(InitExceptionCode.UPLOAD_FILE_TO_BIG, key)\n\t}\n\n\tconst combinedKey = `${dir}${key}`\n\n\t// Wrap the FormData object\n\tconst formData = new FormData()\n\tformData.append(\"key\", combinedKey)\n\n\t// If the backend returns a contentType check such as 'image/' meaning it must start with \"image/\"\n\tif (contentType && contentType !== \"\") {\n\t\t// Get file mime\n\t\tconst fileMimeType = mime.getType(parseExtname(key))\n\t\tformData.append(\"Content-Type\", fileMimeType || contentType)\n\t}\n\n\tformData.append(\"policy\", policy)\n\tformData.append(\"AccessKeyId\", AccessKeyId)\n\tformData.append(\"signature\", signature)\n\tformData.append(\"file\", file)\n\n\t// Send request\n\treturn request<TOS.PostResponse>({\n\t\tmethod: \"post\",\n\t\turl: host,\n\t\tdata: formData,\n\t\theaders: option?.headers ? option?.headers : {},\n\t\ttaskId: option.taskId,\n\t\tonProgress: option?.progress ? option.progress : () => {},\n\t\twithoutWrapper: true,\n\t\tfail: (status, reject) => {\n\t\t\tif (status === 403) {\n\t\t\t\treject(new UploadException(UploadExceptionCode.UPLOAD_CREDENTIALS_IS_EXPIRED))\n\t\t\t}\n\t\t},\n\t}).then((res) => {\n\t\treturn normalizeSuccessResponse(combinedKey, PlatformType.OBS, res.headers)\n\t})\n}\n\nexport default defaultUpload\n\n\n\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAC,kBAAiB;AAClB,2BAAiD;AACjD,6BAAqD;AAErD,mBAA6B;AAE7B,wBAA6B;AAC7B,qBAAwB;AACxB,sBAAyC;AAUzC,MAAM,gBAA6E,wBAClF,MACA,KACA,QACA,WACI;AACJ,QAAM,EAAE,aAAa,QAAQ,WAAW,MAAM,KAAK,gBAAgB,YAAY,IAAI;AAEnF,MAAI,CAAC,UAAU,CAAC,eAAe,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK;AAC3D,UAAM,IAAI;AAAA,MACT,uCAAkB;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAGA,MAAI,MAAM,OAAO,IAAI,OAAO,OAAO,MAAM;AACxC,UAAM,IAAI,mCAAc,uCAAkB,oBAAoB,GAAG;AAAA,EAClE;AAEA,QAAM,cAAc,GAAG,GAAG,GAAG,GAAG;AAGhC,QAAM,WAAW,IAAI,SAAS;AAC9B,WAAS,OAAO,OAAO,WAAW;AAGlC,MAAI,eAAe,gBAAgB,IAAI;AAEtC,UAAM,eAAe,YAAAA,QAAK,YAAQ,gCAAa,GAAG,CAAC;AACnD,aAAS,OAAO,gBAAgB,gBAAgB,WAAW;AAAA,EAC5D;AAEA,WAAS,OAAO,UAAU,MAAM;AAChC,WAAS,OAAO,eAAe,WAAW;AAC1C,WAAS,OAAO,aAAa,SAAS;AACtC,WAAS,OAAO,QAAQ,IAAI;AAG5B,aAAO,wBAA0B;AAAA,IAChC,QAAQ;AAAA,IACR,KAAK;AAAA,IACL,MAAM;AAAA,IACN,SAAS,QAAQ,UAAU,QAAQ,UAAU,CAAC;AAAA,IAC9C,QAAQ,OAAO;AAAA,IACf,YAAY,QAAQ,WAAW,OAAO,WAAW,MAAM;AAAA,IAAC;AAAA,IACxD,gBAAgB;AAAA,IAChB,MAAM,CAAC,QAAQ,WAAW;AACzB,UAAI,WAAW,KAAK;AACnB,eAAO,IAAI,uCAAgB,2CAAoB,6BAA6B,CAAC;AAAA,MAC9E;AAAA,IACD;AAAA,EACD,CAAC,EAAE,KAAK,CAAC,QAAQ;AAChB,eAAO,0CAAyB,aAAa,0BAAa,KAAK,IAAI,OAAO;AAAA,EAC3E,CAAC;AACF,GA5DmF;AA8DnF,IAAO,wBAAQ;","names":["mime"]}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
9
+ var __export = (target, all) => {
10
+ for (var name in all)
11
+ __defProp(target, name, { get: all[name], enumerable: true });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from))
16
+ if (!__hasOwnProp.call(to, key) && key !== except)
17
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
18
+ }
19
+ return to;
20
+ };
21
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
22
+ // If the importer is in node compatibility mode or this is not an ESM
23
+ // file that has been converted to a CommonJS file using a Babel-
24
+ // compatible transform (i.e. "__esModule" has not been set), then set
25
+ // "default" to the CommonJS "module.exports" for node compatibility.
26
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
27
+ mod
28
+ ));
29
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
30
+ var OBS_exports = {};
31
+ __export(OBS_exports, {
32
+ default: () => OBS_default
33
+ });
34
+ module.exports = __toCommonJS(OBS_exports);
35
+ var import_MultipartUpload = require("./MultipartUpload");
36
+ var import_STSUpload = require("./STSUpload");
37
+ var import_defaultUpload = __toESM(require("./defaultUpload"), 1);
38
+ const upload = /* @__PURE__ */ __name((file, key, params, option) => {
39
+ if (Object.prototype.hasOwnProperty.call(params, "credentials")) {
40
+ return (0, import_MultipartUpload.MultipartUpload)(file, key, params, option);
41
+ }
42
+ return (0, import_defaultUpload.default)(file, key, params, option);
43
+ }, "upload");
44
+ var OBS_default = { upload, defaultUpload: import_defaultUpload.default, MultipartUpload: import_MultipartUpload.MultipartUpload, STSUpload: import_STSUpload.STSUpload };
45
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/modules/OBS/index.ts"],"sourcesContent":["import type {\n\tPlatformMultipartUploadOption,\n\tPlatformRequest,\n\tPlatformSimpleUploadOption,\n} from \"../../types\"\nimport type { OBS } from \"../../types/OBS\"\nimport { MultipartUpload } from \"./MultipartUpload\"\nimport { STSUpload } from \"./STSUpload\"\nimport defaultUpload from \"./defaultUpload\"\n\nconst upload: PlatformRequest<\n\tOBS.AuthParams | OBS.STSAuthParams,\n\tPlatformSimpleUploadOption | PlatformMultipartUploadOption\n> = (file, key, params, option) => {\n\tif (Object.prototype.hasOwnProperty.call(params, \"credentials\")) {\n\t\treturn MultipartUpload(file, key, <OBS.STSAuthParams>params, option)\n\t}\n\treturn defaultUpload(file, key, <OBS.AuthParams>params, option)\n}\n\nexport default { upload, defaultUpload, MultipartUpload, STSUpload }\n\n\n\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,6BAAgC;AAChC,uBAA0B;AAC1B,2BAA0B;AAE1B,MAAM,SAGF,wBAAC,MAAM,KAAK,QAAQ,WAAW;AAClC,MAAI,OAAO,UAAU,eAAe,KAAK,QAAQ,aAAa,GAAG;AAChE,eAAO,wCAAgB,MAAM,KAAwB,QAAQ,MAAM;AAAA,EACpE;AACA,aAAO,qBAAAA,SAAc,MAAM,KAAqB,QAAQ,MAAM;AAC/D,GALI;AAOJ,IAAO,cAAQ,EAAE,QAAQ,oCAAAA,SAAe,yDAAiB,sCAAU;","names":["defaultUpload"]}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var utils_exports = {};
21
+ __export(utils_exports, {
22
+ OBS_MIN_PART_SIZE: () => OBS_MIN_PART_SIZE,
23
+ genCompleteMultipartUploadXMLData: () => genCompleteMultipartUploadXMLData
24
+ });
25
+ module.exports = __toCommonJS(utils_exports);
26
+ const OBS_MIN_PART_SIZE = 100 * 1024;
27
+ function genCompleteMultipartUploadXMLData(completeParts) {
28
+ const xmlData = document.createElementNS("", "Data");
29
+ const CompleteMultipartUpload = document.createElementNS("", "CompleteMultipartUpload");
30
+ completeParts.forEach((item) => {
31
+ const Part = document.createElementNS("", "Part");
32
+ const PartNumber = document.createElementNS("", "PartNumber");
33
+ const ETag = document.createElementNS("", "ETag");
34
+ PartNumber.innerHTML = `${item.PartNumber}`;
35
+ ETag.innerHTML = item.ETag.replace('"', "").replace('"', "");
36
+ Part.appendChild(PartNumber);
37
+ Part.appendChild(ETag);
38
+ CompleteMultipartUpload.appendChild(Part);
39
+ });
40
+ xmlData.appendChild(CompleteMultipartUpload);
41
+ return xmlData.innerHTML;
42
+ }
43
+ __name(genCompleteMultipartUploadXMLData, "genCompleteMultipartUploadXMLData");
44
+ // Annotate the CommonJS export names for ESM import in node:
45
+ 0 && (module.exports = {
46
+ OBS_MIN_PART_SIZE,
47
+ genCompleteMultipartUploadXMLData
48
+ });
49
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/modules/OBS/utils/index.ts"],"sourcesContent":["export const OBS_MIN_PART_SIZE = 100 * 1024\n\nexport function genCompleteMultipartUploadXMLData(\n\tcompleteParts: { PartNumber: number; ETag: string }[],\n) {\n\tconst xmlData = document.createElementNS(\"\", \"Data\")\n\tconst CompleteMultipartUpload = document.createElementNS(\"\", \"CompleteMultipartUpload\")\n\tcompleteParts.forEach((item) => {\n\t\tconst Part = document.createElementNS(\"\", \"Part\")\n\t\tconst PartNumber = document.createElementNS(\"\", \"PartNumber\")\n\t\tconst ETag = document.createElementNS(\"\", \"ETag\")\n\t\tPartNumber.innerHTML = `${item.PartNumber}`\n\t\tETag.innerHTML = item.ETag.replace('\"', \"\").replace('\"', \"\")\n\t\tPart.appendChild(PartNumber)\n\t\tPart.appendChild(ETag)\n\t\tCompleteMultipartUpload.appendChild(Part)\n\t})\n\n\txmlData.appendChild(CompleteMultipartUpload)\n\n\treturn xmlData.innerHTML\n}\n\n\n\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAQ,MAAM,oBAAoB,MAAM;AAEjC,SAAS,kCACf,eACC;AACD,QAAM,UAAU,SAAS,gBAAgB,IAAI,MAAM;AACnD,QAAM,0BAA0B,SAAS,gBAAgB,IAAI,yBAAyB;AACtF,gBAAc,QAAQ,CAAC,SAAS;AAC/B,UAAM,OAAO,SAAS,gBAAgB,IAAI,MAAM;AAChD,UAAM,aAAa,SAAS,gBAAgB,IAAI,YAAY;AAC5D,UAAM,OAAO,SAAS,gBAAgB,IAAI,MAAM;AAChD,eAAW,YAAY,GAAG,KAAK,UAAU;AACzC,SAAK,YAAY,KAAK,KAAK,QAAQ,KAAK,EAAE,EAAE,QAAQ,KAAK,EAAE;AAC3D,SAAK,YAAY,UAAU;AAC3B,SAAK,YAAY,IAAI;AACrB,4BAAwB,YAAY,IAAI;AAAA,EACzC,CAAC;AAED,UAAQ,YAAY,uBAAuB;AAE3C,SAAO,QAAQ;AAChB;AAnBgB;","names":[]}