@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/TOS/MultipartUpload.ts"],"sourcesContent":["import mime from \"mime\"\nimport { InitException, InitExceptionCode } from \"../../Exception/InitException\"\nimport { UploadException, UploadExceptionCode } from \"../../Exception/UploadException\"\nimport type { PlatformMultipartUploadOption, PlatformRequest } from \"../../types\"\nimport { PlatformType } from \"../../types\"\nimport type { ErrorType } from \"../../types/error\"\nimport type { DataWrapperWithHeaders } from \"../../types/request\"\nimport type { TOS } from \"../../types/TOS\"\nimport { isBlob, isFile } from \"../../utils/checkDataFormat\"\nimport {\n\tcreateBuffer,\n\tdivideParts,\n\tgetPartSize,\n\tinitCheckpoint,\n\tparallelSend,\n} from \"../../utils/multipart\"\nimport { parseExtname } from \"../../utils/regExpUtil\"\nimport { request } from \"../../utils/request\"\nimport { normalizeSuccessResponse } from \"../../utils/response\"\nimport { VOLCENGINE_MIN_PART_SIZE, getAuthHeaders, removeProtocol } from \"./utils\"\nimport { SignersV4 } from \"./utils/signatureV4\"\nimport { getSortedQueryString } from \"./utils/utils\"\nimport { STSUpload } from \"./STSUpload\"\nimport { SignatureV4Credentials } from \"./utils/signatureV4Credentials\"\n\n/**\n * @description: Complex upload initialization, used to get UploadId from TOS service\n * @param {string} name filename\n * @param {TOS.STSAuthParams} params upload credentials and other fields\n * @param {TOS.InitMultipartUploadOption} option configuration fields\n */\nasync function initMultipartUpload(\n\tname: string,\n\t{ bucket, host, expires }: TOS.STSAuthParams,\n\t{ signers, headers: OptionHeaders, ...otherOptions }: TOS.InitMultipartUploadOption,\n) {\n\tconst headers = { ...OptionHeaders }\n\n\tconst reqHeaders = getAuthHeaders(\n\t\t{\n\t\t\tbucket,\n\t\t\tmethod: \"POST\",\n\t\t\theaders,\n\t\t\tpath: `/${encodeURIComponent(name)}`,\n\t\t\tquery: getSortedQueryString({ uploads: \"\" }),\n\t\t\thost: removeProtocol(host),\n\t\t},\n\t\tsigners,\n\t\texpires,\n\t)\n\n\tconst { data } = await request<DataWrapperWithHeaders<TOS.InitMultipartUploadResponse>>({\n\t\turl: `${host}/${encodeURIComponent(name)}`,\n\t\tquery: { uploads: \"\" },\n\t\theaders: { ...headers, ...reqHeaders },\n\t\tmethod: \"POST\",\n\t\twithoutWrapper: true,\n\t\t...otherOptions,\n\t})\n\n\treturn {\n\t\tres: data,\n\t\tbucket: data.Bucket,\n\t\tname: data.Key,\n\t\tUploadId: data.UploadId,\n\t}\n}\n\n/**\n * @description: After multipart upload is done, call this to complete it\n * @param {String} name File path name\n * @param {String} UploadId Upload ID\n * @param {Array} parts Part info\n * {Integer} Part number\n * {String} Part etag\n * @param params\n * @param {TOS.MultipartUploadParams} options Upload credential and related info\n * @param {TOS.CompleteMultipartUploadOptions} options Configuration field\n */\nasync function completeMultipartUpload(\n\tname: string,\n\tUploadId: string,\n\tparts: Array<{ number: number; etag: string }>,\n\t{ bucket, host, expires }: TOS.STSAuthParams,\n\t{ signers, progress, partSize, ...otherOptions }: TOS.CompleteMultipartUploadOptions,\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\n\tconst headers = {}\n\n\tconst reqHeaders = getAuthHeaders(\n\t\t{\n\t\t\tbucket,\n\t\t\tmethod: \"POST\",\n\t\t\theaders,\n\t\t\tpath: `/${encodeURIComponent(name)}`,\n\t\t\tquery: getSortedQueryString({ UploadId }),\n\t\t\thost: removeProtocol(host),\n\t\t},\n\t\tsigners,\n\t\texpires,\n\t)\n\n\tconst result = await request<TOS.CompleteMultipartUploadResponse>({\n\t\turl: `${host}/${encodeURIComponent(name)}`,\n\t\tmethod: \"POST\",\n\t\tquery: {\n\t\t\tUploadId,\n\t\t},\n\t\theaders: { ...headers, ...reqHeaders },\n\t\tdata: JSON.stringify({\n\t\t\tParts: completeParts.map((item) => ({\n\t\t\t\teTag: item.etag,\n\t\t\t\tpartNumber: item.number,\n\t\t\t})),\n\t\t}),\n\t\t...otherOptions,\n\t})\n\n\tif (progress && partSize) {\n\t\tprogress(100, parts.length * partSize, parts.length * partSize, null)\n\t}\n\treturn normalizeSuccessResponse(result.Key, PlatformType.TOS, result.headers)\n}\n\n/**\n * @description: Used to upload a specific part\n * @param {String} name File name\n * @param {String} UploadId Upload session id\n * @param {number} partNo Which part number\n * @param {TOS.PartInfo} data Part data\n * @param params\n * @param {TOS.MultipartUploadOption} options Configuration field\n * @returns Return async result\n */\nasync function uploadPart(\n\tname: string,\n\tUploadId: string,\n\tpartNo: number,\n\tdata: TOS.PartInfo,\n\t{ bucket, host, expires }: TOS.STSAuthParams,\n\t{ signers, ...otherOptions }: TOS.MultipartUploadOption,\n) {\n\tconst headers = {}\n\n\tconst reqHeaders = getAuthHeaders(\n\t\t{\n\t\t\tbucket,\n\t\t\tmethod: \"PUT\",\n\t\t\theaders,\n\t\t\tpath: `/${encodeURIComponent(name)}`,\n\t\t\tquery: getSortedQueryString({ partNumber: partNo, UploadId }),\n\t\t\thost: removeProtocol(host),\n\t\t},\n\t\tsigners,\n\t\texpires,\n\t)\n\n\tconst result = await request<TOS.UploadPartResponse>({\n\t\turl: `${host}/${encodeURIComponent(name)}`,\n\t\tquery: { partNumber: `${partNo}`, UploadId },\n\t\tmethod: \"PUT\",\n\t\tdata: data.content,\n\t\theaders: { ...headers, ...reqHeaders },\n\t\ttaskId: `${partNo}`,\n\t\t...otherOptions,\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,\n\t\tetag: result.headers.etag,\n\t\tres: result,\n\t}\n}\n\n/**\n * @description: Used for multipart upload or ResumeCheckpoint resume\n * @param {Object} checkpoint the File upload checkpoint info\n * @param {TOS.MultipartUploadParams} params Upload credential info\n * @param {TOS.ResumeMultipartOption} options Configuration field\n */\nasync function resumeMultipart(\n\tcheckpoint: TOS.Checkpoint,\n\tparams: TOS.STSAuthParams,\n\toptions: TOS.MultipartUploadOption,\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 | TOS.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, 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\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: TOS.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, params, opt)\n}\n\n/**\n * @description: Multipart upload interface, e.g., for part upload or Checkpoint resume\n * @param {File | Blob} file File upload\n * @param {String} key File name\n * @param {TOS.STSAuthParams} params Upload credential info\n * @param {TOS.MultipartUploadOption} option Configuration field\n */\nexport const MultipartUpload: PlatformRequest<\n\tTOS.STSAuthParams,\n\tPlatformMultipartUploadOption\n> = async (\n\tfile: File | Blob,\n\tkey: string,\n\tparams: TOS.STSAuthParams,\n\toption: PlatformMultipartUploadOption,\n) => {\n\tconst options = { ...option }\n\tconst {\n\t\tregion,\n\t\tbucket,\n\t\tdir,\n\t\tcredentials: { AccessKeyId, SecretAccessKey, SessionToken },\n\t} = params\n\n\tif (!region || !bucket || !dir || !SecretAccessKey || !AccessKeyId || !SessionToken) {\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\"AccessKeyId\",\n\t\t\t\"SecretAccessKey\",\n\t\t\t\"SessionToken\",\n\t\t)\n\t}\n\n\tconst name = `${dir}${key}`\n\n\t// Signing utility\n\tconst signV4 = new SignatureV4Credentials(SessionToken, SecretAccessKey, AccessKeyId)\n\tconst signers = new SignersV4(\n\t\t{\n\t\t\talgorithm: \"TOS4-HMAC-SHA256\",\n\t\t\tregion,\n\t\t\tserviceName: \"tos\",\n\t\t\tbucket,\n\t\t\tsecurityToken: SessionToken,\n\t\t},\n\t\tsignV4,\n\t)\n\n\tconst resumeMultipartOptions = {\n\t\t...options,\n\t\tsigners,\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, params, resumeMultipartOptions)\n\t}\n\n\toptions.headers = options.headers || {}\n\n\tconst fileSize = file.size\n\tif (fileSize < VOLCENGINE_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 < VOLCENGINE_MIN_PART_SIZE) {\n\t\tthrow new InitException(\n\t\t\tInitExceptionCode.UPLOAD_API_OPTION_PARTSIZE_IS_SMALL,\n\t\t\tVOLCENGINE_MIN_PART_SIZE,\n\t\t)\n\t}\n\n\t// Initialize multipart upload\n\tconst { UploadId } = await initMultipartUpload(name, params, {\n\t\theaders: { ...options.headers },\n\t\tmime: options.mime,\n\t\tsigners,\n\t})\n\n\t// Get part size\n\tconst partSize = getPartSize(fileSize, <number>options.partSize, VOLCENGINE_MIN_PART_SIZE)\n\n\tconst checkpoint: TOS.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, params, resumeMultipartOptions)\n}\n\n\n\n\n"],"mappings":"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","names":["import_utils","mime"]}
@@ -0,0 +1,125 @@
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_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_request = require("../../utils/request");
40
+ var import_response = require("../../utils/response");
41
+ var import_utils = require("./utils");
42
+ var import_signatureV4 = require("./utils/signatureV4");
43
+ var import_signatureV4Credentials = require("./utils/signatureV4Credentials");
44
+ function STSUpload(file, key, params, option) {
45
+ const {
46
+ bucket,
47
+ credentials: { AccessKeyId, SecretAccessKey, SessionToken },
48
+ endpoint,
49
+ host,
50
+ // callback,
51
+ dir,
52
+ expires,
53
+ region
54
+ } = params;
55
+ if (!bucket || !AccessKeyId || !SecretAccessKey || !SessionToken || !dir || !endpoint || !region || !expires) {
56
+ throw new import_InitException.InitException(
57
+ import_InitException.InitExceptionCode.MISSING_CREDENTIALS_PARAMS_FOR_UPLOAD,
58
+ "volcEngine",
59
+ "bucket",
60
+ "AccessKeyId",
61
+ "SecretAccessKey",
62
+ "SessionToken",
63
+ "dir",
64
+ "endpoint",
65
+ "region",
66
+ "expires"
67
+ );
68
+ }
69
+ if (file?.size > 5 * 1024 * 1024 * 1024) {
70
+ throw new import_InitException.InitException(import_InitException.InitExceptionCode.UPLOAD_FILE_TO_BIG, key);
71
+ }
72
+ const combinedKey = `${dir}${key}`;
73
+ const headers = {
74
+ ...option.headers
75
+ // "x-tos-callback": callback
76
+ };
77
+ const mimeType = import_mime.default.getType(key);
78
+ if (mimeType) {
79
+ headers["Content-type"] = mimeType;
80
+ }
81
+ const signV4 = new import_signatureV4Credentials.SignatureV4Credentials(SessionToken, SecretAccessKey, AccessKeyId);
82
+ const signers = new import_signatureV4.SignersV4(
83
+ {
84
+ algorithm: "TOS4-HMAC-SHA256",
85
+ region,
86
+ serviceName: "tos",
87
+ bucket,
88
+ securityToken: SessionToken
89
+ },
90
+ signV4
91
+ );
92
+ const authHeaders = (0, import_utils.getAuthHeaders)(
93
+ {
94
+ bucket,
95
+ method: "PUT",
96
+ headers,
97
+ path: `/${encodeURIComponent(combinedKey)}`,
98
+ host: (0, import_utils.removeProtocol)(host)
99
+ },
100
+ signers,
101
+ expires
102
+ );
103
+ return (0, import_request.request)({
104
+ method: "PUT",
105
+ url: `${host}/${encodeURIComponent(combinedKey)}`,
106
+ data: file,
107
+ headers: { ...authHeaders, ...headers },
108
+ taskId: option.taskId,
109
+ onProgress: option?.progress ? option.progress : () => {
110
+ },
111
+ fail: (status, reject) => {
112
+ if (status === 403) {
113
+ reject(new import_UploadException.UploadException(import_UploadException.UploadExceptionCode.UPLOAD_CREDENTIALS_IS_EXPIRED));
114
+ }
115
+ }
116
+ }).then((res) => {
117
+ return (0, import_response.normalizeSuccessResponse)(combinedKey, import_types.PlatformType.TOS, res.headers);
118
+ });
119
+ }
120
+ __name(STSUpload, "STSUpload");
121
+ // Annotate the CommonJS export names for ESM import in node:
122
+ 0 && (module.exports = {
123
+ STSUpload
124
+ });
125
+ //# sourceMappingURL=STSUpload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/modules/TOS/STSUpload.ts"],"sourcesContent":["import mime from \"mime\"\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 { TOS } from \"../../types/TOS\"\nimport { request } from \"../../utils/request\"\nimport { normalizeSuccessResponse } from \"../../utils/response\"\nimport { getAuthHeaders, removeProtocol } from \"./utils\"\nimport { SignersV4 } from \"./utils/signatureV4\"\nimport { SignatureV4Credentials } from \"./utils/signatureV4Credentials\"\n\nexport function STSUpload(\n\tfile: File | Blob,\n\tkey: string,\n\tparams: TOS.STSAuthParams,\n\toption: PlatformSimpleUploadOption | PlatformMultipartUploadOption,\n): Promise<NormalSuccessResponse> {\n\tconst {\n\t\tbucket,\n\t\tcredentials: { AccessKeyId, SecretAccessKey, SessionToken },\n\t\tendpoint,\n\t\thost,\n\t\t// callback,\n\t\tdir,\n\t\texpires,\n\t\tregion,\n\t} = params\n\n\tif (\n\t\t!bucket ||\n\t\t!AccessKeyId ||\n\t\t!SecretAccessKey ||\n\t\t!SessionToken ||\n\t\t!dir ||\n\t\t!endpoint ||\n\t\t!region ||\n\t\t!expires\n\t) {\n\t\tthrow new InitException(\n\t\t\tInitExceptionCode.MISSING_CREDENTIALS_PARAMS_FOR_UPLOAD,\n\t\t\t\"volcEngine\",\n\t\t\t\"bucket\",\n\t\t\t\"AccessKeyId\",\n\t\t\t\"SecretAccessKey\",\n\t\t\t\"SessionToken\",\n\t\t\t\"dir\",\n\t\t\t\"endpoint\",\n\t\t\t\"region\",\n\t\t\t\"expires\",\n\t\t)\n\t}\n\n\t// Volcengine 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\tconst headers: Record<string, any> = {\n\t\t...option.headers,\n\t\t// \"x-tos-callback\": callback\n\t}\n\n\tconst mimeType = mime.getType(key)\n\tif (mimeType) {\n\t\theaders[\"Content-type\"] = mimeType\n\t}\n\n\t// Signing utility\n\tconst signV4 = new SignatureV4Credentials(SessionToken, SecretAccessKey, AccessKeyId)\n\tconst signers = new SignersV4(\n\t\t{\n\t\t\talgorithm: \"TOS4-HMAC-SHA256\",\n\t\t\tregion,\n\t\t\tserviceName: \"tos\",\n\t\t\tbucket,\n\t\t\tsecurityToken: SessionToken,\n\t\t},\n\t\tsignV4,\n\t)\n\n\tconst authHeaders = getAuthHeaders(\n\t\t{\n\t\t\tbucket,\n\t\t\tmethod: \"PUT\",\n\t\t\theaders,\n\t\t\tpath: `/${encodeURIComponent(combinedKey)}`,\n\t\t\thost: removeProtocol(host),\n\t\t},\n\t\tsigners,\n\t\texpires,\n\t)\n\n\t// Send request\n\treturn request<TOS.PutResponse>({\n\t\tmethod: \"PUT\",\n\t\turl: `${host}/${encodeURIComponent(combinedKey)}`,\n\t\tdata: file,\n\t\theaders: { ...authHeaders, ...headers },\n\t\ttaskId: option.taskId,\n\t\tonProgress: option?.progress ? option.progress : () => {},\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.TOS, res.headers)\n\t})\n}\n\n\n\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAC,kBAAiB;AAClB,2BAAiD;AACjD,6BAAqD;AAMrD,mBAA6B;AAE7B,qBAAwB;AACxB,sBAAyC;AACzC,mBAA+C;AAC/C,yBAA0B;AAC1B,oCAAuC;AAEhC,SAAS,UACf,MACA,KACA,QACA,QACiC;AACjC,QAAM;AAAA,IACL;AAAA,IACA,aAAa,EAAE,aAAa,iBAAiB,aAAa;AAAA,IAC1D;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA;AAAA,IACA;AAAA,EACD,IAAI;AAEJ,MACC,CAAC,UACD,CAAC,eACD,CAAC,mBACD,CAAC,gBACD,CAAC,OACD,CAAC,YACD,CAAC,UACD,CAAC,SACA;AACD,UAAM,IAAI;AAAA,MACT,uCAAkB;AAAA,MAClB;AAAA,MACA;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,UAA+B;AAAA,IACpC,GAAG,OAAO;AAAA;AAAA,EAEX;AAEA,QAAM,WAAW,YAAAA,QAAK,QAAQ,GAAG;AACjC,MAAI,UAAU;AACb,YAAQ,cAAc,IAAI;AAAA,EAC3B;AAGA,QAAM,SAAS,IAAI,qDAAuB,cAAc,iBAAiB,WAAW;AACpF,QAAM,UAAU,IAAI;AAAA,IACnB;AAAA,MACC,WAAW;AAAA,MACX;AAAA,MACA,aAAa;AAAA,MACb;AAAA,MACA,eAAe;AAAA,IAChB;AAAA,IACA;AAAA,EACD;AAEA,QAAM,kBAAc;AAAA,IACnB;AAAA,MACC;AAAA,MACA,QAAQ;AAAA,MACR;AAAA,MACA,MAAM,IAAI,mBAAmB,WAAW,CAAC;AAAA,MACzC,UAAM,6BAAe,IAAI;AAAA,IAC1B;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAGA,aAAO,wBAAyB;AAAA,IAC/B,QAAQ;AAAA,IACR,KAAK,GAAG,IAAI,IAAI,mBAAmB,WAAW,CAAC;AAAA,IAC/C,MAAM;AAAA,IACN,SAAS,EAAE,GAAG,aAAa,GAAG,QAAQ;AAAA,IACtC,QAAQ,OAAO;AAAA,IACf,YAAY,QAAQ,WAAW,OAAO,WAAW,MAAM;AAAA,IAAC;AAAA,IACxD,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;AAnGgB;","names":["mime"]}
@@ -0,0 +1,94 @@
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 { policy, host, dir, content_type: contentType } = params;
44
+ if (!policy || !params["x-tos-signature"] || !params["x-tos-credential"] || !host || !dir || // !params["x-tos-callback"] ||
45
+ !params["x-tos-algorithm"]) {
46
+ throw new import_InitException.InitException(
47
+ import_InitException.InitExceptionCode.MISSING_CREDENTIALS_PARAMS_FOR_UPLOAD,
48
+ "volcEngine",
49
+ "policy",
50
+ "x-tos-signature",
51
+ "x-tos-credential",
52
+ "host",
53
+ "dir",
54
+ // "x-tos-callback",
55
+ "x-tos-algorithm"
56
+ );
57
+ }
58
+ if (file?.size > 5 * 1024 * 1024 * 1024) {
59
+ throw new import_InitException.InitException(import_InitException.InitExceptionCode.UPLOAD_FILE_TO_BIG, key);
60
+ }
61
+ const combinedKey = `${dir}${key}`;
62
+ const formData = new FormData();
63
+ if (contentType) {
64
+ const fileMimeType = import_mime.default.getType((0, import_regExpUtil.parseExtname)(key));
65
+ formData.append("Content-Type", fileMimeType || contentType);
66
+ }
67
+ formData.append("x-tos-server-side-encryption", "AES256");
68
+ formData.append("x-tos-algorithm", params["x-tos-algorithm"]);
69
+ formData.append("x-tos-date", params["x-tos-date"]);
70
+ formData.append("x-tos-credential", params["x-tos-credential"]);
71
+ formData.append("policy", policy);
72
+ formData.append("x-tos-signature", params["x-tos-signature"]);
73
+ formData.append("key", combinedKey);
74
+ formData.append("file", file);
75
+ return (0, import_request.request)({
76
+ method: "post",
77
+ url: host,
78
+ data: formData,
79
+ headers: option?.headers ? option?.headers : {},
80
+ taskId: option.taskId,
81
+ onProgress: option?.progress ? option.progress : () => {
82
+ },
83
+ withoutWrapper: true,
84
+ fail: (status, reject) => {
85
+ if (status === 403) {
86
+ reject(new import_UploadException.UploadException(import_UploadException.UploadExceptionCode.UPLOAD_CREDENTIALS_IS_EXPIRED));
87
+ }
88
+ }
89
+ }).then((res) => {
90
+ return (0, import_response.normalizeSuccessResponse)(combinedKey, import_types.PlatformType.TOS, res.headers);
91
+ });
92
+ }, "defaultUpload");
93
+ var defaultUpload_default = defaultUpload;
94
+ //# sourceMappingURL=defaultUpload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/modules/TOS/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\"\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<TOS.AuthParams, PlatformSimpleUploadOption> = (\n\tfile,\n\tkey,\n\tparams,\n\toption,\n) => {\n\tconst { policy, host, dir, content_type: contentType } = params\n\n\tif (\n\t\t!policy ||\n\t\t!params[\"x-tos-signature\"] ||\n\t\t!params[\"x-tos-credential\"] ||\n\t\t!host ||\n\t\t!dir ||\n\t\t// !params[\"x-tos-callback\"] ||\n\t\t!params[\"x-tos-algorithm\"]\n\t) {\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\"x-tos-signature\",\n\t\t\t\"x-tos-credential\",\n\t\t\t\"host\",\n\t\t\t\"dir\",\n\t\t\t// \"x-tos-callback\",\n\t\t\t\"x-tos-algorithm\",\n\t\t)\n\t}\n\n\t// Volcengine 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\t// Wrap the FormData object\n\tconst formData = new FormData()\n\t// If the backend returns a contentType check such as 'image/' meaning it must start with \"image/\"\n\tif (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\tformData.append(\"x-tos-server-side-encryption\", \"AES256\")\n\tformData.append(\"x-tos-algorithm\", params[\"x-tos-algorithm\"])\n\tformData.append(\"x-tos-date\", params[\"x-tos-date\"])\n\tformData.append(\"x-tos-credential\", params[\"x-tos-credential\"])\n\tformData.append(\"policy\", policy)\n\tformData.append(\"x-tos-signature\", params[\"x-tos-signature\"])\n\tformData.append(\"key\", combinedKey)\n\tformData.append(\"file\", file)\n\t// formData.append(\"x-tos-callback\", params[\"x-tos-callback\"])\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.TOS, 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;AASzC,MAAM,gBAA6E,wBAClF,MACA,KACA,QACA,WACI;AACJ,QAAM,EAAE,QAAQ,MAAM,KAAK,cAAc,YAAY,IAAI;AAEzD,MACC,CAAC,UACD,CAAC,OAAO,iBAAiB,KACzB,CAAC,OAAO,kBAAkB,KAC1B,CAAC,QACD,CAAC;AAAA,EAED,CAAC,OAAO,iBAAiB,GACxB;AACD,UAAM,IAAI;AAAA,MACT,uCAAkB;AAAA,MAClB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MAEA;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,WAAW,IAAI,SAAS;AAE9B,MAAI,aAAa;AAEhB,UAAM,eAAe,YAAAA,QAAK,YAAQ,gCAAa,GAAG,CAAC;AACnD,aAAS,OAAO,gBAAgB,gBAAgB,WAAW;AAAA,EAC5D;AACA,WAAS,OAAO,gCAAgC,QAAQ;AACxD,WAAS,OAAO,mBAAmB,OAAO,iBAAiB,CAAC;AAC5D,WAAS,OAAO,cAAc,OAAO,YAAY,CAAC;AAClD,WAAS,OAAO,oBAAoB,OAAO,kBAAkB,CAAC;AAC9D,WAAS,OAAO,UAAU,MAAM;AAChC,WAAS,OAAO,mBAAmB,OAAO,iBAAiB,CAAC;AAC5D,WAAS,OAAO,OAAO,WAAW;AAClC,WAAS,OAAO,QAAQ,IAAI;AAI5B,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,GAvEmF;AAyEnF,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 TOS_exports = {};
31
+ __export(TOS_exports, {
32
+ default: () => TOS_default
33
+ });
34
+ module.exports = __toCommonJS(TOS_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 TOS_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/TOS/index.ts"],"sourcesContent":["import type {\n\tPlatformMultipartUploadOption,\n\tPlatformRequest,\n\tPlatformSimpleUploadOption,\n} from \"../../types\"\nimport type { TOS } from \"../../types/TOS\"\nimport { MultipartUpload } from \"./MultipartUpload\"\nimport { STSUpload } from \"./STSUpload\"\nimport defaultUpload from \"./defaultUpload\"\n\nconst upload: PlatformRequest<\n\tTOS.AuthParams | TOS.STSAuthParams,\n\tPlatformSimpleUploadOption | PlatformMultipartUploadOption\n> = (file, key, params, option) => {\n\tif (Object.prototype.hasOwnProperty.call(params, \"credentials\")) {\n\t\treturn MultipartUpload(file, key, <TOS.STSAuthParams>params, option)\n\t}\n\n\treturn defaultUpload(file, key, <TOS.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;AAEA,aAAO,qBAAAA,SAAc,MAAM,KAAqB,QAAQ,MAAM;AAC/D,GANI;AAQJ,IAAO,cAAQ,EAAE,QAAQ,oCAAAA,SAAe,yDAAiB,sCAAU;","names":["defaultUpload"]}
@@ -0,0 +1,34 @@
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 TosClientError_exports = {};
21
+ __export(TosClientError_exports, {
22
+ default: () => TosClientError_default
23
+ });
24
+ module.exports = __toCommonJS(TosClientError_exports);
25
+ const _TosClientError = class _TosClientError extends Error {
26
+ constructor(message) {
27
+ super(message);
28
+ Object.setPrototypeOf(this, _TosClientError.prototype);
29
+ }
30
+ };
31
+ __name(_TosClientError, "TosClientError");
32
+ let TosClientError = _TosClientError;
33
+ var TosClientError_default = TosClientError;
34
+ //# sourceMappingURL=TosClientError.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/modules/TOS/utils/TosClientError.ts"],"sourcesContent":["class TosClientError extends Error {\n\tconstructor(message: string) {\n\t\tsuper(message)\n\n\t\t// https://www.dannyguo.com/blog/how-to-fix-instanceof-not-working-for-custom-errors-in-typescript/\n\t\tObject.setPrototypeOf(this, TosClientError.prototype)\n\t}\n}\n\nexport default TosClientError\n\n\n\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAC,MAAM,kBAAN,MAAM,wBAAuB,MAAM;AAAA,EACnC,YAAY,SAAiB;AAC5B,UAAM,OAAO;AAGb,WAAO,eAAe,MAAM,gBAAe,SAAS;AAAA,EACrD;AACD;AAPoC;AAAnC,IAAM,iBAAN;AASD,IAAO,yBAAQ;","names":[]}
@@ -0,0 +1,64 @@
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
+ VOLCENGINE_MIN_PART_SIZE: () => VOLCENGINE_MIN_PART_SIZE,
23
+ formatHeaders: () => formatHeaders,
24
+ getAuthHeaders: () => getAuthHeaders,
25
+ removeProtocol: () => removeProtocol
26
+ });
27
+ module.exports = __toCommonJS(utils_exports);
28
+ const VOLCENGINE_MIN_PART_SIZE = 5 * 1024 * 1024;
29
+ const ignoreHeaders = ["host"];
30
+ function formatHeaders(optionHeaders) {
31
+ const reqHeaders = { ...optionHeaders };
32
+ Object.keys(reqHeaders).forEach((key) => {
33
+ if (ignoreHeaders.includes(key)) {
34
+ delete reqHeaders[key];
35
+ }
36
+ });
37
+ return reqHeaders;
38
+ }
39
+ __name(formatHeaders, "formatHeaders");
40
+ function removeProtocol(host) {
41
+ const idx = host.indexOf("://");
42
+ if (idx !== -1) {
43
+ return host.substring(idx + 3);
44
+ }
45
+ return host;
46
+ }
47
+ __name(removeProtocol, "removeProtocol");
48
+ function getAuthHeaders(signOpt, signers, expiredAt, credentials) {
49
+ const signatureHeaders = signers.signatureHeader(signOpt, expiredAt, credentials);
50
+ const optionHeaders = {};
51
+ signatureHeaders.forEach((value, mapKey) => {
52
+ optionHeaders[mapKey] = value;
53
+ });
54
+ return formatHeaders(optionHeaders);
55
+ }
56
+ __name(getAuthHeaders, "getAuthHeaders");
57
+ // Annotate the CommonJS export names for ESM import in node:
58
+ 0 && (module.exports = {
59
+ VOLCENGINE_MIN_PART_SIZE,
60
+ formatHeaders,
61
+ getAuthHeaders,
62
+ removeProtocol
63
+ });
64
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../src/modules/TOS/utils/index.ts"],"sourcesContent":["import type { ISigCredentials, ISigOptions, SignersV4 } from \"./signatureV4\"\n\nexport const VOLCENGINE_MIN_PART_SIZE = 5 * 1024 * 1024\n\nconst ignoreHeaders = [\"host\"]\n\nexport function formatHeaders(optionHeaders: Record<string, string>) {\n\tconst reqHeaders = { ...optionHeaders }\n\tObject.keys(reqHeaders).forEach((key) => {\n\t\tif (ignoreHeaders.includes(key)) {\n\t\t\tdelete reqHeaders[key]\n\t\t}\n\t})\n\treturn reqHeaders\n}\n\nexport function removeProtocol(host: string) {\n\tconst idx = host.indexOf(\"://\")\n\tif (idx !== -1) {\n\t\treturn host.substring(idx + 3)\n\t}\n\treturn host\n}\n\nexport function getAuthHeaders(\n\tsignOpt: ISigOptions,\n\tsigners: SignersV4,\n\texpiredAt: number,\n\tcredentials?: ISigCredentials,\n) {\n\tconst signatureHeaders = signers.signatureHeader(signOpt, expiredAt, credentials)\n\tconst optionHeaders: Record<string, string> = {}\n\n\tsignatureHeaders.forEach((value, mapKey) => {\n\t\toptionHeaders[mapKey] = value\n\t})\n\n\treturn formatHeaders(optionHeaders)\n}\n\n\n\n\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEO,MAAM,2BAA2B,IAAI,OAAO;AAEnD,MAAM,gBAAgB,CAAC,MAAM;AAEtB,SAAS,cAAc,eAAuC;AACpE,QAAM,aAAa,EAAE,GAAG,cAAc;AACtC,SAAO,KAAK,UAAU,EAAE,QAAQ,CAAC,QAAQ;AACxC,QAAI,cAAc,SAAS,GAAG,GAAG;AAChC,aAAO,WAAW,GAAG;AAAA,IACtB;AAAA,EACD,CAAC;AACD,SAAO;AACR;AARgB;AAUT,SAAS,eAAe,MAAc;AAC5C,QAAM,MAAM,KAAK,QAAQ,KAAK;AAC9B,MAAI,QAAQ,IAAI;AACf,WAAO,KAAK,UAAU,MAAM,CAAC;AAAA,EAC9B;AACA,SAAO;AACR;AANgB;AAQT,SAAS,eACf,SACA,SACA,WACA,aACC;AACD,QAAM,mBAAmB,QAAQ,gBAAgB,SAAS,WAAW,WAAW;AAChF,QAAM,gBAAwC,CAAC;AAE/C,mBAAiB,QAAQ,CAAC,OAAO,WAAW;AAC3C,kBAAc,MAAM,IAAI;AAAA,EACzB,CAAC;AAED,SAAO,cAAc,aAAa;AACnC;AAdgB;","names":[]}