@nocobase/plugin-file-manager 2.0.0-alpha.9 → 2.0.0-beta.2

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 (371) hide show
  1. package/dist/client/index.d.ts +1 -1
  2. package/dist/client/index.js +1 -1
  3. package/dist/client/models/DisplayPreviewFieldModel.d.ts +1 -0
  4. package/dist/client/models/UploadActionModel.d.ts +3 -1
  5. package/dist/client/schemas/storageTypes/ali-oss.d.ts +12 -0
  6. package/dist/client/schemas/storageTypes/common.d.ts +12 -0
  7. package/dist/client/schemas/storageTypes/index.d.ts +48 -0
  8. package/dist/client/schemas/storageTypes/local.d.ts +12 -0
  9. package/dist/client/schemas/storageTypes/s3.d.ts +12 -0
  10. package/dist/client/schemas/storageTypes/tx-cos.d.ts +12 -0
  11. package/dist/client/templates/file.d.ts +4 -0
  12. package/dist/common/collections/storages.d.ts +11 -0
  13. package/dist/common/collections/storages.js +6 -0
  14. package/dist/externalVersion.js +8 -8
  15. package/dist/locale/de-DE.json +42 -29
  16. package/dist/locale/en-US.json +43 -30
  17. package/dist/locale/es-ES.json +54 -0
  18. package/dist/locale/fr-FR.json +45 -12
  19. package/dist/locale/hu-HU.json +48 -0
  20. package/dist/locale/id-ID.json +48 -0
  21. package/dist/locale/it-IT.json +43 -28
  22. package/dist/locale/ja-JP.json +43 -30
  23. package/dist/locale/ko-KR.json +46 -24
  24. package/dist/locale/nl-NL.json +53 -39
  25. package/dist/locale/pt-BR.json +54 -0
  26. package/dist/locale/ru-RU.json +47 -11
  27. package/dist/locale/tr-TR.json +47 -10
  28. package/dist/locale/uk-UA.json +54 -0
  29. package/dist/locale/vi-VN.json +48 -0
  30. package/dist/locale/zh-CN.json +41 -31
  31. package/dist/locale/zh-TW.json +54 -0
  32. package/dist/node_modules/@aws-sdk/client-s3/package.json +1 -1
  33. package/dist/node_modules/@aws-sdk/lib-storage/LICENSE +201 -0
  34. package/dist/node_modules/{multer-s3 → @aws-sdk/lib-storage/dist-cjs}/index.js +574 -6229
  35. package/dist/node_modules/@aws-sdk/lib-storage/dist-cjs/runtimeConfig.browser.js +8 -0
  36. package/dist/node_modules/@aws-sdk/lib-storage/dist-cjs/runtimeConfig.js +10 -0
  37. package/dist/node_modules/@aws-sdk/lib-storage/dist-cjs/runtimeConfig.native.js +8 -0
  38. package/dist/node_modules/@aws-sdk/lib-storage/dist-cjs/runtimeConfig.shared.js +6 -0
  39. package/dist/node_modules/@aws-sdk/lib-storage/dist-es/Upload.js +304 -0
  40. package/dist/node_modules/@aws-sdk/lib-storage/dist-es/bytelength.js +27 -0
  41. package/dist/node_modules/@aws-sdk/lib-storage/dist-es/chunker.js +24 -0
  42. package/dist/node_modules/@aws-sdk/lib-storage/dist-es/chunks/getChunkStream.js +24 -0
  43. package/dist/node_modules/@aws-sdk/lib-storage/dist-es/chunks/getChunkUint8Array.js +19 -0
  44. package/dist/node_modules/@aws-sdk/lib-storage/dist-es/chunks/getDataReadable.js +11 -0
  45. package/dist/node_modules/@aws-sdk/lib-storage/dist-es/chunks/getDataReadableStream.js +24 -0
  46. package/dist/node_modules/@aws-sdk/lib-storage/dist-es/index.js +2 -0
  47. package/dist/node_modules/@aws-sdk/lib-storage/dist-es/runtimeConfig.browser.js +5 -0
  48. package/dist/node_modules/@aws-sdk/lib-storage/dist-es/runtimeConfig.js +7 -0
  49. package/dist/node_modules/@aws-sdk/lib-storage/dist-es/runtimeConfig.native.js +5 -0
  50. package/dist/node_modules/@aws-sdk/lib-storage/dist-es/runtimeConfig.shared.js +3 -0
  51. package/dist/node_modules/@aws-sdk/lib-storage/dist-es/types.js +1 -0
  52. package/dist/node_modules/@aws-sdk/lib-storage/dist-types/Upload.d.ts +59 -0
  53. package/dist/node_modules/@aws-sdk/lib-storage/dist-types/bytelength.d.ts +1 -0
  54. package/dist/node_modules/@aws-sdk/lib-storage/dist-types/chunker.d.ts +3 -0
  55. package/dist/node_modules/@aws-sdk/lib-storage/dist-types/chunks/getChunkStream.d.ts +2 -0
  56. package/dist/node_modules/@aws-sdk/lib-storage/dist-types/chunks/getChunkUint8Array.d.ts +2 -0
  57. package/dist/node_modules/@aws-sdk/lib-storage/dist-types/chunks/getDataReadable.d.ts +3 -0
  58. package/dist/node_modules/@aws-sdk/lib-storage/dist-types/chunks/getDataReadableStream.d.ts +1 -0
  59. package/dist/node_modules/@aws-sdk/lib-storage/dist-types/index.d.ts +2 -0
  60. package/dist/node_modules/@aws-sdk/lib-storage/dist-types/runtimeConfig.browser.d.ts +7 -0
  61. package/dist/node_modules/@aws-sdk/lib-storage/dist-types/runtimeConfig.d.ts +8 -0
  62. package/dist/node_modules/@aws-sdk/lib-storage/dist-types/runtimeConfig.native.d.ts +7 -0
  63. package/dist/node_modules/@aws-sdk/lib-storage/dist-types/runtimeConfig.shared.d.ts +6 -0
  64. package/dist/node_modules/@aws-sdk/lib-storage/dist-types/ts3.4/Upload.d.ts +43 -0
  65. package/dist/node_modules/@aws-sdk/lib-storage/dist-types/ts3.4/bytelength.d.ts +1 -0
  66. package/dist/node_modules/@aws-sdk/lib-storage/dist-types/ts3.4/chunker.d.ts +6 -0
  67. package/dist/node_modules/@aws-sdk/lib-storage/dist-types/ts3.4/chunks/getChunkStream.d.ts +6 -0
  68. package/dist/node_modules/@aws-sdk/lib-storage/dist-types/ts3.4/chunks/getChunkUint8Array.d.ts +5 -0
  69. package/dist/node_modules/@aws-sdk/lib-storage/dist-types/ts3.4/chunks/getDataReadable.d.ts +4 -0
  70. package/dist/node_modules/@aws-sdk/lib-storage/dist-types/ts3.4/chunks/getDataReadableStream.d.ts +3 -0
  71. package/dist/node_modules/@aws-sdk/lib-storage/dist-types/ts3.4/index.d.ts +2 -0
  72. package/dist/node_modules/@aws-sdk/lib-storage/dist-types/ts3.4/runtimeConfig.browser.d.ts +4 -0
  73. package/dist/node_modules/@aws-sdk/lib-storage/dist-types/ts3.4/runtimeConfig.d.ts +4 -0
  74. package/dist/node_modules/@aws-sdk/lib-storage/dist-types/ts3.4/runtimeConfig.native.d.ts +4 -0
  75. package/dist/node_modules/@aws-sdk/lib-storage/dist-types/ts3.4/runtimeConfig.shared.d.ts +3 -0
  76. package/dist/node_modules/@aws-sdk/lib-storage/dist-types/ts3.4/types.d.ts +22 -0
  77. package/dist/node_modules/@aws-sdk/lib-storage/dist-types/types.d.ts +51 -0
  78. package/dist/node_modules/@aws-sdk/lib-storage/package.json +1 -0
  79. package/dist/node_modules/{multer-s3 → ali-oss}/LICENSE +1 -2
  80. package/dist/node_modules/ali-oss/dist/aliyun-oss-sdk.js +44018 -0
  81. package/dist/node_modules/ali-oss/dist/aliyun-oss-sdk.min.js +4 -0
  82. package/dist/node_modules/ali-oss/lib/browser/bucket.js +296 -0
  83. package/dist/node_modules/ali-oss/lib/browser/client.js +452 -0
  84. package/dist/node_modules/ali-oss/lib/browser/managed-upload.js +360 -0
  85. package/dist/node_modules/ali-oss/lib/browser/object.js +385 -0
  86. package/dist/node_modules/ali-oss/lib/browser/version.js +1 -0
  87. package/dist/node_modules/ali-oss/lib/browser.js +6 -0
  88. package/dist/node_modules/ali-oss/lib/bucket.js +337 -0
  89. package/dist/node_modules/{multer-aliyun-oss/index.js → ali-oss/lib/client.js} +2 -2
  90. package/dist/node_modules/ali-oss/lib/cluster.js +228 -0
  91. package/dist/node_modules/ali-oss/lib/common/bucket/abortBucketWorm.d.ts +4 -0
  92. package/dist/node_modules/ali-oss/lib/common/bucket/abortBucketWorm.js +14 -0
  93. package/dist/node_modules/ali-oss/lib/common/bucket/abortBucketWorm.ts +12 -0
  94. package/dist/node_modules/ali-oss/lib/common/bucket/completeBucketWorm.d.ts +4 -0
  95. package/dist/node_modules/ali-oss/lib/common/bucket/completeBucketWorm.js +14 -0
  96. package/dist/node_modules/ali-oss/lib/common/bucket/completeBucketWorm.ts +12 -0
  97. package/dist/node_modules/ali-oss/lib/common/bucket/deleteBucketEncryption.js +20 -0
  98. package/dist/node_modules/ali-oss/lib/common/bucket/deleteBucketInventory.d.ts +10 -0
  99. package/dist/node_modules/ali-oss/lib/common/bucket/deleteBucketInventory.js +22 -0
  100. package/dist/node_modules/ali-oss/lib/common/bucket/deleteBucketInventory.ts +21 -0
  101. package/dist/node_modules/ali-oss/lib/common/bucket/deleteBucketLifecycle.js +13 -0
  102. package/dist/node_modules/ali-oss/lib/common/bucket/deleteBucketPolicy.js +21 -0
  103. package/dist/node_modules/ali-oss/lib/common/bucket/deleteBucketTags.js +21 -0
  104. package/dist/node_modules/ali-oss/lib/common/bucket/deleteBucketWebsite.js +13 -0
  105. package/dist/node_modules/ali-oss/lib/common/bucket/extendBucketWorm.d.ts +4 -0
  106. package/dist/node_modules/ali-oss/lib/common/bucket/extendBucketWorm.js +23 -0
  107. package/dist/node_modules/ali-oss/lib/common/bucket/extendBucketWorm.ts +21 -0
  108. package/dist/node_modules/ali-oss/lib/common/bucket/getBucketEncryption.js +21 -0
  109. package/dist/node_modules/ali-oss/lib/common/bucket/getBucketInventory.d.ts +11 -0
  110. package/dist/node_modules/ali-oss/lib/common/bucket/getBucketInventory.js +25 -0
  111. package/dist/node_modules/ali-oss/lib/common/bucket/getBucketInventory.ts +24 -0
  112. package/dist/node_modules/ali-oss/lib/common/bucket/getBucketLifecycle.js +33 -0
  113. package/dist/node_modules/ali-oss/lib/common/bucket/getBucketPolicy.js +28 -0
  114. package/dist/node_modules/ali-oss/lib/common/bucket/getBucketRequestPayment.js +25 -0
  115. package/dist/node_modules/ali-oss/lib/common/bucket/getBucketStat.d.ts +23 -0
  116. package/dist/node_modules/ali-oss/lib/common/bucket/getBucketStat.js +17 -0
  117. package/dist/node_modules/ali-oss/lib/common/bucket/getBucketStat.ts +34 -0
  118. package/dist/node_modules/ali-oss/lib/common/bucket/getBucketTags.js +23 -0
  119. package/dist/node_modules/ali-oss/lib/common/bucket/getBucketVersioning.js +22 -0
  120. package/dist/node_modules/ali-oss/lib/common/bucket/getBucketWebsite.js +28 -0
  121. package/dist/node_modules/ali-oss/lib/common/bucket/getBucketWorm.d.ts +1 -0
  122. package/dist/node_modules/ali-oss/lib/common/bucket/getBucketWorm.js +20 -0
  123. package/dist/node_modules/ali-oss/lib/common/bucket/getBucketWorm.ts +22 -0
  124. package/dist/node_modules/ali-oss/lib/common/bucket/index.js +34 -0
  125. package/dist/node_modules/ali-oss/lib/common/bucket/initiateBucketWorm.d.ts +5 -0
  126. package/dist/node_modules/ali-oss/lib/common/bucket/initiateBucketWorm.js +24 -0
  127. package/dist/node_modules/ali-oss/lib/common/bucket/initiateBucketWorm.ts +23 -0
  128. package/dist/node_modules/ali-oss/lib/common/bucket/listBucketInventory.d.ts +13 -0
  129. package/dist/node_modules/ali-oss/lib/common/bucket/listBucketInventory.js +29 -0
  130. package/dist/node_modules/ali-oss/lib/common/bucket/listBucketInventory.ts +32 -0
  131. package/dist/node_modules/ali-oss/lib/common/bucket/putBucket.js +31 -0
  132. package/dist/node_modules/ali-oss/lib/common/bucket/putBucketEncryption.js +36 -0
  133. package/dist/node_modules/ali-oss/lib/common/bucket/putBucketInventory.d.ts +36 -0
  134. package/dist/node_modules/ali-oss/lib/common/bucket/putBucketInventory.js +58 -0
  135. package/dist/node_modules/ali-oss/lib/common/bucket/putBucketInventory.ts +84 -0
  136. package/dist/node_modules/ali-oss/lib/common/bucket/putBucketLifecycle.js +127 -0
  137. package/dist/node_modules/ali-oss/lib/common/bucket/putBucketPolicy.js +27 -0
  138. package/dist/node_modules/ali-oss/lib/common/bucket/putBucketRequestPayment.js +40 -0
  139. package/dist/node_modules/ali-oss/lib/common/bucket/putBucketTags.js +39 -0
  140. package/dist/node_modules/ali-oss/lib/common/bucket/putBucketVersioning.js +35 -0
  141. package/dist/node_modules/ali-oss/lib/common/bucket/putBucketWebsite.js +50 -0
  142. package/dist/node_modules/ali-oss/lib/common/callback.js +27 -0
  143. package/dist/node_modules/ali-oss/lib/common/client/getReqUrl.d.ts +1 -0
  144. package/dist/node_modules/ali-oss/lib/common/client/getReqUrl.js +52 -0
  145. package/dist/node_modules/ali-oss/lib/common/client/getReqUrl.ts +51 -0
  146. package/dist/node_modules/ali-oss/lib/common/client/initOptions.js +72 -0
  147. package/dist/node_modules/ali-oss/lib/common/image/index.js +5 -0
  148. package/dist/node_modules/ali-oss/lib/common/image/processObjectSave.js +45 -0
  149. package/dist/node_modules/ali-oss/lib/common/multipart-copy.js +240 -0
  150. package/dist/node_modules/ali-oss/lib/common/multipart.js +271 -0
  151. package/dist/node_modules/ali-oss/lib/common/object/asyncSignatureUrl.js +57 -0
  152. package/dist/node_modules/ali-oss/lib/common/object/calculatePostSignature.js +35 -0
  153. package/dist/node_modules/ali-oss/lib/common/object/copyObject.js +74 -0
  154. package/dist/node_modules/ali-oss/lib/common/object/delete.js +22 -0
  155. package/dist/node_modules/ali-oss/lib/common/object/deleteMulti.js +57 -0
  156. package/dist/node_modules/ali-oss/lib/common/object/deleteObjectTagging.js +22 -0
  157. package/dist/node_modules/ali-oss/lib/common/object/generateObjectUrl.js +28 -0
  158. package/dist/node_modules/ali-oss/lib/common/object/get.js +64 -0
  159. package/dist/node_modules/ali-oss/lib/common/object/getACL.js +30 -0
  160. package/dist/node_modules/ali-oss/lib/common/object/getAsyncFetch.d.ts +1 -0
  161. package/dist/node_modules/ali-oss/lib/common/object/getAsyncFetch.js +26 -0
  162. package/dist/node_modules/ali-oss/lib/common/object/getAsyncFetch.ts +25 -0
  163. package/dist/node_modules/ali-oss/lib/common/object/getBucketVersions.js +98 -0
  164. package/dist/node_modules/ali-oss/lib/common/object/getObjectMeta.js +23 -0
  165. package/dist/node_modules/ali-oss/lib/common/object/getObjectTagging.js +34 -0
  166. package/dist/node_modules/ali-oss/lib/common/object/getObjectUrl.js +21 -0
  167. package/dist/node_modules/ali-oss/lib/common/object/getSymlink.js +23 -0
  168. package/dist/node_modules/ali-oss/lib/common/object/head.js +40 -0
  169. package/dist/node_modules/ali-oss/lib/common/object/index.js +26 -0
  170. package/dist/node_modules/ali-oss/lib/common/object/postAsyncFetch.d.ts +1 -0
  171. package/dist/node_modules/ali-oss/lib/common/object/postAsyncFetch.js +44 -0
  172. package/dist/node_modules/ali-oss/lib/common/object/postAsyncFetch.ts +46 -0
  173. package/dist/node_modules/ali-oss/lib/common/object/putACL.js +27 -0
  174. package/dist/node_modules/ali-oss/lib/common/object/putObjectTagging.js +43 -0
  175. package/dist/node_modules/ali-oss/lib/common/object/putSymlink.js +33 -0
  176. package/dist/node_modules/ali-oss/lib/common/object/signatureUrl.js +52 -0
  177. package/dist/node_modules/ali-oss/lib/common/object/signatureUrlV4.js +70 -0
  178. package/dist/node_modules/ali-oss/lib/common/parallel.js +177 -0
  179. package/dist/node_modules/ali-oss/lib/common/signUtils.js +355 -0
  180. package/dist/node_modules/ali-oss/lib/common/utils/checkBucketName.d.ts +1 -0
  181. package/dist/node_modules/ali-oss/lib/common/utils/checkBucketName.js +9 -0
  182. package/dist/node_modules/ali-oss/lib/common/utils/checkBucketName.ts +6 -0
  183. package/dist/node_modules/ali-oss/lib/common/utils/checkBucketNameTest.d.ts +1 -0
  184. package/dist/node_modules/ali-oss/lib/common/utils/checkBucketNameTest.js +14 -0
  185. package/dist/node_modules/ali-oss/lib/common/utils/checkBucketNameTest.ts +12 -0
  186. package/dist/node_modules/ali-oss/lib/common/utils/checkBucketTag.d.ts +1 -0
  187. package/dist/node_modules/ali-oss/lib/common/utils/checkBucketTag.js +49 -0
  188. package/dist/node_modules/ali-oss/lib/common/utils/checkBucketTag.ts +52 -0
  189. package/dist/node_modules/ali-oss/lib/common/utils/checkConfigValid.d.ts +1 -0
  190. package/dist/node_modules/ali-oss/lib/common/utils/checkConfigValid.js +30 -0
  191. package/dist/node_modules/ali-oss/lib/common/utils/checkConfigValid.ts +27 -0
  192. package/dist/node_modules/ali-oss/lib/common/utils/checkEnv.d.ts +1 -0
  193. package/dist/node_modules/ali-oss/lib/common/utils/checkEnv.js +9 -0
  194. package/dist/node_modules/ali-oss/lib/common/utils/checkEnv.ts +5 -0
  195. package/dist/node_modules/ali-oss/lib/common/utils/checkObjectTag.d.ts +1 -0
  196. package/dist/node_modules/ali-oss/lib/common/utils/checkObjectTag.js +50 -0
  197. package/dist/node_modules/ali-oss/lib/common/utils/checkObjectTag.ts +53 -0
  198. package/dist/node_modules/ali-oss/lib/common/utils/checkUserAgent.d.ts +1 -0
  199. package/dist/node_modules/ali-oss/lib/common/utils/checkUserAgent.js +7 -0
  200. package/dist/node_modules/ali-oss/lib/common/utils/checkUserAgent.ts +4 -0
  201. package/dist/node_modules/ali-oss/lib/common/utils/checkValid.d.ts +1 -0
  202. package/dist/node_modules/ali-oss/lib/common/utils/checkValid.js +14 -0
  203. package/dist/node_modules/ali-oss/lib/common/utils/checkValid.ts +9 -0
  204. package/dist/node_modules/ali-oss/lib/common/utils/createRequest.d.ts +8 -0
  205. package/dist/node_modules/ali-oss/lib/common/utils/createRequest.js +139 -0
  206. package/dist/node_modules/ali-oss/lib/common/utils/createRequest.ts +169 -0
  207. package/dist/node_modules/ali-oss/lib/common/utils/dataFix.d.ts +12 -0
  208. package/dist/node_modules/ali-oss/lib/common/utils/dataFix.js +63 -0
  209. package/dist/node_modules/ali-oss/lib/common/utils/dataFix.ts +78 -0
  210. package/dist/node_modules/ali-oss/lib/common/utils/deepCopy.d.ts +2 -0
  211. package/dist/node_modules/ali-oss/lib/common/utils/deepCopy.js +41 -0
  212. package/dist/node_modules/ali-oss/lib/common/utils/deepCopy.ts +47 -0
  213. package/dist/node_modules/ali-oss/lib/common/utils/encodeString.d.ts +1 -0
  214. package/dist/node_modules/ali-oss/lib/common/utils/encodeString.js +12 -0
  215. package/dist/node_modules/ali-oss/lib/common/utils/encodeString.ts +7 -0
  216. package/dist/node_modules/ali-oss/lib/common/utils/encoder.d.ts +2 -0
  217. package/dist/node_modules/ali-oss/lib/common/utils/encoder.js +9 -0
  218. package/dist/node_modules/ali-oss/lib/common/utils/encoder.ts +6 -0
  219. package/dist/node_modules/ali-oss/lib/common/utils/formatInventoryConfig.d.ts +1 -0
  220. package/dist/node_modules/ali-oss/lib/common/utils/formatInventoryConfig.js +45 -0
  221. package/dist/node_modules/ali-oss/lib/common/utils/formatInventoryConfig.ts +41 -0
  222. package/dist/node_modules/ali-oss/lib/common/utils/formatObjKey.d.ts +6 -0
  223. package/dist/node_modules/ali-oss/lib/common/utils/formatObjKey.js +34 -0
  224. package/dist/node_modules/ali-oss/lib/common/utils/formatObjKey.ts +35 -0
  225. package/dist/node_modules/ali-oss/lib/common/utils/formatTag.d.ts +1 -0
  226. package/dist/node_modules/ali-oss/lib/common/utils/formatTag.js +22 -0
  227. package/dist/node_modules/ali-oss/lib/common/utils/formatTag.ts +20 -0
  228. package/dist/node_modules/ali-oss/lib/common/utils/getStandardRegion.d.ts +1 -0
  229. package/dist/node_modules/ali-oss/lib/common/utils/getStandardRegion.js +7 -0
  230. package/dist/node_modules/ali-oss/lib/common/utils/getStandardRegion.ts +3 -0
  231. package/dist/node_modules/ali-oss/lib/common/utils/getStrBytesCount.d.ts +1 -0
  232. package/dist/node_modules/ali-oss/lib/common/utils/getStrBytesCount.js +17 -0
  233. package/dist/node_modules/ali-oss/lib/common/utils/getStrBytesCount.ts +12 -0
  234. package/dist/node_modules/ali-oss/lib/common/utils/getUserAgent.d.ts +1 -0
  235. package/dist/node_modules/ali-oss/lib/common/utils/getUserAgent.js +18 -0
  236. package/dist/node_modules/ali-oss/lib/common/utils/getUserAgent.ts +14 -0
  237. package/dist/node_modules/ali-oss/lib/common/utils/isArray.d.ts +1 -0
  238. package/dist/node_modules/ali-oss/lib/common/utils/isArray.js +6 -0
  239. package/dist/node_modules/ali-oss/lib/common/utils/isArray.ts +3 -0
  240. package/dist/node_modules/ali-oss/lib/common/utils/isBlob.d.ts +1 -0
  241. package/dist/node_modules/ali-oss/lib/common/utils/isBlob.js +7 -0
  242. package/dist/node_modules/ali-oss/lib/common/utils/isBlob.ts +3 -0
  243. package/dist/node_modules/ali-oss/lib/common/utils/isBuffer.d.ts +1 -0
  244. package/dist/node_modules/ali-oss/lib/common/utils/isBuffer.js +7 -0
  245. package/dist/node_modules/ali-oss/lib/common/utils/isBuffer.ts +3 -0
  246. package/dist/node_modules/ali-oss/lib/common/utils/isDingTalk.d.ts +1 -0
  247. package/dist/node_modules/ali-oss/lib/common/utils/isDingTalk.js +10 -0
  248. package/dist/node_modules/ali-oss/lib/common/utils/isDingTalk.ts +6 -0
  249. package/dist/node_modules/ali-oss/lib/common/utils/isFile.d.ts +1 -0
  250. package/dist/node_modules/ali-oss/lib/common/utils/isFile.js +6 -0
  251. package/dist/node_modules/ali-oss/lib/common/utils/isFile.ts +3 -0
  252. package/dist/node_modules/ali-oss/lib/common/utils/isFunction.d.ts +1 -0
  253. package/dist/node_modules/ali-oss/lib/common/utils/isFunction.js +6 -0
  254. package/dist/node_modules/ali-oss/lib/common/utils/isFunction.ts +3 -0
  255. package/dist/node_modules/ali-oss/lib/common/utils/isIP.d.ts +6 -0
  256. package/dist/node_modules/ali-oss/lib/common/utils/isIP.js +14 -0
  257. package/dist/node_modules/ali-oss/lib/common/utils/isIP.ts +12 -0
  258. package/dist/node_modules/ali-oss/lib/common/utils/isObject.d.ts +1 -0
  259. package/dist/node_modules/ali-oss/lib/common/utils/isObject.js +6 -0
  260. package/dist/node_modules/ali-oss/lib/common/utils/isObject.ts +3 -0
  261. package/dist/node_modules/ali-oss/lib/common/utils/lowercaseKeyHeader.d.ts +1 -0
  262. package/dist/node_modules/ali-oss/lib/common/utils/lowercaseKeyHeader.js +14 -0
  263. package/dist/node_modules/ali-oss/lib/common/utils/lowercaseKeyHeader.ts +11 -0
  264. package/dist/node_modules/ali-oss/lib/common/utils/obj2xml.d.ts +1 -0
  265. package/dist/node_modules/ali-oss/lib/common/utils/obj2xml.js +43 -0
  266. package/dist/node_modules/ali-oss/lib/common/utils/obj2xml.ts +37 -0
  267. package/dist/node_modules/ali-oss/lib/common/utils/omit.d.ts +1 -0
  268. package/dist/node_modules/ali-oss/lib/common/utils/omit.js +11 -0
  269. package/dist/node_modules/ali-oss/lib/common/utils/omit.ts +9 -0
  270. package/dist/node_modules/ali-oss/lib/common/utils/policy2Str.d.ts +1 -0
  271. package/dist/node_modules/ali-oss/lib/common/utils/policy2Str.js +21 -0
  272. package/dist/node_modules/ali-oss/lib/common/utils/policy2Str.ts +15 -0
  273. package/dist/node_modules/ali-oss/lib/common/utils/retry.d.ts +1 -0
  274. package/dist/node_modules/ali-oss/lib/common/utils/retry.js +30 -0
  275. package/dist/node_modules/ali-oss/lib/common/utils/retry.ts +26 -0
  276. package/dist/node_modules/ali-oss/lib/common/utils/setRegion.d.ts +3 -0
  277. package/dist/node_modules/ali-oss/lib/common/utils/setRegion.js +20 -0
  278. package/dist/node_modules/ali-oss/lib/common/utils/setRegion.ts +15 -0
  279. package/dist/node_modules/ali-oss/lib/common/utils/setSTSToken.d.ts +2 -0
  280. package/dist/node_modules/ali-oss/lib/common/utils/setSTSToken.js +36 -0
  281. package/dist/node_modules/ali-oss/lib/common/utils/setSTSToken.ts +32 -0
  282. package/dist/node_modules/ali-oss/lib/global.d.ts +6 -0
  283. package/dist/node_modules/ali-oss/lib/image.js +146 -0
  284. package/dist/node_modules/ali-oss/lib/managed-upload.js +380 -0
  285. package/dist/node_modules/ali-oss/lib/object.js +420 -0
  286. package/dist/node_modules/ali-oss/lib/rtmp.js +295 -0
  287. package/dist/node_modules/ali-oss/lib/setConfig.d.ts +3 -0
  288. package/dist/node_modules/ali-oss/lib/setConfig.js +42 -0
  289. package/dist/node_modules/ali-oss/lib/setConfig.ts +52 -0
  290. package/dist/node_modules/ali-oss/lib/sts.js +156 -0
  291. package/dist/node_modules/ali-oss/lib/types/experimental.d.ts +1 -0
  292. package/dist/node_modules/ali-oss/lib/types/experimental.js +2 -0
  293. package/dist/node_modules/ali-oss/lib/types/experimental.ts +1 -0
  294. package/dist/node_modules/ali-oss/node_modules/bowser/.editorconfig +17 -0
  295. package/dist/node_modules/ali-oss/node_modules/bowser/.idea/.name +1 -0
  296. package/dist/node_modules/ali-oss/node_modules/bowser/.idea/bowser.iml +8 -0
  297. package/dist/node_modules/ali-oss/node_modules/bowser/.idea/encodings.xml +6 -0
  298. package/dist/node_modules/ali-oss/node_modules/bowser/.idea/inspectionProfiles/Project_Default.xml +6 -0
  299. package/dist/node_modules/ali-oss/node_modules/bowser/.idea/jsLibraryMappings.xml +8 -0
  300. package/dist/node_modules/ali-oss/node_modules/bowser/.idea/markdown-exported-files.xml +8 -0
  301. package/dist/node_modules/ali-oss/node_modules/bowser/.idea/markdown-navigator/profiles_settings.xml +3 -0
  302. package/dist/node_modules/ali-oss/node_modules/bowser/.idea/markdown-navigator.xml +67 -0
  303. package/dist/node_modules/ali-oss/node_modules/bowser/.idea/misc.xml +6 -0
  304. package/dist/node_modules/ali-oss/node_modules/bowser/.idea/modules.xml +8 -0
  305. package/dist/node_modules/ali-oss/node_modules/bowser/.idea/vcs.xml +6 -0
  306. package/dist/node_modules/ali-oss/node_modules/bowser/.idea/watcherTasks.xml +4 -0
  307. package/dist/node_modules/ali-oss/node_modules/bowser/.idea/workspace.xml +696 -0
  308. package/dist/node_modules/ali-oss/node_modules/bowser/.travis.yml +8 -0
  309. package/dist/node_modules/ali-oss/node_modules/bowser/bower.json +33 -0
  310. package/dist/node_modules/ali-oss/node_modules/bowser/bowser.js +644 -0
  311. package/dist/node_modules/ali-oss/node_modules/bowser/bowser.min.js +6 -0
  312. package/dist/node_modules/ali-oss/node_modules/bowser/package.json +38 -0
  313. package/dist/node_modules/ali-oss/node_modules/bowser/src/bowser.js +644 -0
  314. package/dist/node_modules/ali-oss/node_modules/bowser/test/test.js +151 -0
  315. package/dist/node_modules/ali-oss/node_modules/bowser/typings.d.ts +115 -0
  316. package/dist/node_modules/ali-oss/node_modules/dateformat/.vs/ProjectSettings.json +3 -0
  317. package/dist/node_modules/ali-oss/node_modules/dateformat/.vs/config/applicationhost.config +1031 -0
  318. package/dist/node_modules/ali-oss/node_modules/dateformat/.vs/node-dateformat/v15/.suo +0 -0
  319. package/dist/node_modules/ali-oss/node_modules/dateformat/.vs/slnx.sqlite +0 -0
  320. package/dist/node_modules/ali-oss/node_modules/dateformat/lib/dateformat.js +226 -0
  321. package/dist/node_modules/ali-oss/node_modules/dateformat/package.json +30 -0
  322. package/dist/node_modules/ali-oss/node_modules/mime/Mime.js +97 -0
  323. package/dist/node_modules/ali-oss/node_modules/mime/cli.js +46 -0
  324. package/dist/node_modules/ali-oss/node_modules/mime/index.js +4 -0
  325. package/dist/node_modules/ali-oss/node_modules/mime/lite.js +4 -0
  326. package/dist/node_modules/ali-oss/node_modules/mime/package.json +52 -0
  327. package/dist/node_modules/ali-oss/node_modules/mime/types/other.js +1 -0
  328. package/dist/node_modules/ali-oss/node_modules/mime/types/standard.js +1 -0
  329. package/dist/node_modules/ali-oss/package.json +1 -0
  330. package/dist/node_modules/ali-oss/shims/crypto/crypto.js +98 -0
  331. package/dist/node_modules/ali-oss/shims/crypto/helpers.js +36 -0
  332. package/dist/node_modules/ali-oss/shims/crypto/md5.js +152 -0
  333. package/dist/node_modules/ali-oss/shims/crypto/sha.js +91 -0
  334. package/dist/node_modules/ali-oss/shims/crypto/sha256.js +163 -0
  335. package/dist/node_modules/ali-oss/shims/debug.js +3 -0
  336. package/dist/node_modules/ali-oss/shims/is-type-of.js +18 -0
  337. package/dist/node_modules/ali-oss/shims/process.js +35 -0
  338. package/dist/node_modules/ali-oss/shims/stream-http/index.js +82 -0
  339. package/dist/node_modules/ali-oss/shims/stream-http/lib/capability.js +72 -0
  340. package/dist/node_modules/ali-oss/shims/stream-http/lib/request.js +320 -0
  341. package/dist/node_modules/ali-oss/shims/stream-http/lib/response.js +217 -0
  342. package/dist/node_modules/ali-oss/shims/url/index.js +696 -0
  343. package/dist/node_modules/ali-oss/shims/url/util.js +16 -0
  344. package/dist/node_modules/ali-oss/shims/utility.js +25 -0
  345. package/dist/node_modules/ali-oss/shims/xhr.js +798 -0
  346. package/dist/node_modules/mime-match/package.json +1 -1
  347. package/dist/node_modules/mime-types/package.json +1 -1
  348. package/dist/node_modules/mkdirp/package.json +1 -1
  349. package/dist/node_modules/multer-cos/package.json +1 -1
  350. package/dist/node_modules/url-join/package.json +1 -1
  351. package/dist/server/actions/storages.js +4 -6
  352. package/dist/server/server.js +1 -0
  353. package/dist/server/storages/ali-oss.d.ts +15 -1
  354. package/dist/server/storages/ali-oss.js +66 -2
  355. package/dist/server/storages/index.d.ts +1 -0
  356. package/dist/server/storages/local.js +1 -1
  357. package/dist/server/storages/s3.d.ts +10 -3
  358. package/dist/server/storages/s3.js +121 -29
  359. package/dist/server/storages/tx-cos.js +1 -1
  360. package/dist/server/utils.d.ts +1 -0
  361. package/dist/server/utils.js +43 -0
  362. package/package.json +7 -3
  363. package/dist/node_modules/multer-aliyun-oss/package.json +0 -1
  364. package/dist/node_modules/multer-s3/.gitattributes +0 -1
  365. package/dist/node_modules/multer-s3/.travis.yml +0 -6
  366. package/dist/node_modules/multer-s3/package.json +0 -1
  367. package/dist/node_modules/multer-s3/test/basic.js +0 -293
  368. package/dist/node_modules/multer-s3/test/files/a.txt +0 -1
  369. package/dist/node_modules/multer-s3/test/files/test.svg +0 -3
  370. package/dist/node_modules/multer-s3/test/files/test2.svg +0 -9
  371. package/dist/node_modules/multer-s3/test/util/mock-s3.js +0 -17
@@ -0,0 +1,420 @@
1
+ const debug = require('debug')('ali-oss:object');
2
+ const fs = require('fs');
3
+ const is = require('is-type-of');
4
+ const copy = require('copy-to');
5
+ const path = require('path');
6
+ const mime = require('mime');
7
+ const callback = require('./common/callback');
8
+ const { Transform } = require('stream');
9
+ const pump = require('pump');
10
+ const { isBuffer } = require('./common/utils/isBuffer');
11
+ const { retry } = require('./common/utils/retry');
12
+ const { obj2xml } = require('./common/utils/obj2xml');
13
+
14
+ const proto = exports;
15
+
16
+ /**
17
+ * Object operations
18
+ */
19
+
20
+ /**
21
+ * append an object from String(file path)/Buffer/ReadableStream
22
+ * @param {String} name the object key
23
+ * @param {Mixed} file String(file path)/Buffer/ReadableStream
24
+ * @param {Object} options
25
+ * @return {Object}
26
+ */
27
+ proto.append = async function append(name, file, options) {
28
+ options = options || {};
29
+ if (options.position === undefined) options.position = '0';
30
+ options.subres = {
31
+ append: '',
32
+ position: options.position
33
+ };
34
+ options.method = 'POST';
35
+
36
+ const result = await this.put(name, file, options);
37
+ result.nextAppendPosition = result.res.headers['x-oss-next-append-position'];
38
+ return result;
39
+ };
40
+
41
+ /**
42
+ * put an object from String(file path)/Buffer/ReadableStream
43
+ * @param {String} name the object key
44
+ * @param {Mixed} file String(file path)/Buffer/ReadableStream
45
+ * @param {Object} options
46
+ * {Object} options.callback The callback parameter is composed of a JSON string encoded in Base64
47
+ * {String} options.callback.url the OSS sends a callback request to this URL
48
+ * {String} options.callback.host The host header value for initiating callback requests
49
+ * {String} options.callback.body The value of the request body when a callback is initiated
50
+ * {String} options.callback.contentType The Content-Type of the callback requests initiatiated
51
+ * {Object} options.callback.customValue Custom parameters are a map of key-values, e.g:
52
+ * customValue = {
53
+ * key1: 'value1',
54
+ * key2: 'value2'
55
+ * }
56
+ * @return {Object}
57
+ */
58
+ proto.put = async function put(name, file, options) {
59
+ let content;
60
+ options = options || {};
61
+ name = this._objectName(name);
62
+
63
+ if (isBuffer(file)) {
64
+ content = file;
65
+ } else if (is.string(file)) {
66
+ const stats = fs.statSync(file);
67
+ if (!stats.isFile()) {
68
+ throw new Error(`${file} is not file`);
69
+ }
70
+ options.mime = options.mime || mime.getType(path.extname(file));
71
+ options.contentLength = await this._getFileSize(file);
72
+ const getStream = () => fs.createReadStream(file);
73
+ const putStreamStb = (objectName, makeStream, configOption) => {
74
+ return this.putStream(objectName, makeStream(), configOption);
75
+ };
76
+ return await retry(putStreamStb, this.options.retryMax, {
77
+ errorHandler: err => {
78
+ const _errHandle = _err => {
79
+ const statusErr = [-1, -2].includes(_err.status);
80
+ const requestErrorRetryHandle = this.options.requestErrorRetryHandle || (() => true);
81
+ return statusErr && requestErrorRetryHandle(_err);
82
+ };
83
+ if (_errHandle(err)) return true;
84
+ return false;
85
+ }
86
+ })(name, getStream, options);
87
+ } else if (is.readableStream(file)) {
88
+ return await this.putStream(name, file, options);
89
+ } else {
90
+ throw new TypeError('Must provide String/Buffer/ReadableStream for put.');
91
+ }
92
+
93
+ options.headers = options.headers || {};
94
+ this._convertMetaToHeaders(options.meta, options.headers);
95
+
96
+ const method = options.method || 'PUT';
97
+ const params = this._objectRequestParams(method, name, options);
98
+
99
+ callback.encodeCallback(params, options);
100
+
101
+ params.mime = options.mime;
102
+ params.content = content;
103
+ params.successStatuses = [200];
104
+
105
+ const result = await this.request(params);
106
+
107
+ const ret = {
108
+ name,
109
+ url: this._objectUrl(name),
110
+ res: result.res
111
+ };
112
+
113
+ if (params.headers && params.headers['x-oss-callback']) {
114
+ ret.data = JSON.parse(result.data.toString());
115
+ }
116
+
117
+ return ret;
118
+ };
119
+
120
+ /**
121
+ * put an object from ReadableStream. If `options.contentLength` is
122
+ * not provided, chunked encoding is used.
123
+ * @param {String} name the object key
124
+ * @param {Readable} stream the ReadableStream
125
+ * @param {Object} options
126
+ * @return {Object}
127
+ */
128
+ proto.putStream = async function putStream(name, stream, options) {
129
+ options = options || {};
130
+ options.headers = options.headers || {};
131
+ name = this._objectName(name);
132
+ if (options.contentLength) {
133
+ options.headers['Content-Length'] = options.contentLength;
134
+ } else {
135
+ options.headers['Transfer-Encoding'] = 'chunked';
136
+ }
137
+ this._convertMetaToHeaders(options.meta, options.headers);
138
+
139
+ const method = options.method || 'PUT';
140
+ const params = this._objectRequestParams(method, name, options);
141
+ callback.encodeCallback(params, options);
142
+ params.mime = options.mime;
143
+ const transform = new Transform();
144
+ // must remove http stream header for signature
145
+ transform._transform = function _transform(chunk, encoding, done) {
146
+ this.push(chunk);
147
+ done();
148
+ };
149
+ params.stream = pump(stream, transform);
150
+ params.successStatuses = [200];
151
+
152
+ const result = await this.request(params);
153
+
154
+ const ret = {
155
+ name,
156
+ url: this._objectUrl(name),
157
+ res: result.res
158
+ };
159
+
160
+ if (params.headers && params.headers['x-oss-callback']) {
161
+ ret.data = JSON.parse(result.data.toString());
162
+ }
163
+
164
+ return ret;
165
+ };
166
+
167
+ proto.getStream = async function getStream(name, options) {
168
+ options = options || {};
169
+
170
+ if (options.process) {
171
+ options.subres = options.subres || {};
172
+ options.subres['x-oss-process'] = options.process;
173
+ }
174
+
175
+ const params = this._objectRequestParams('GET', name, options);
176
+ params.customResponse = true;
177
+ params.successStatuses = [200, 206, 304];
178
+
179
+ const result = await this.request(params);
180
+
181
+ return {
182
+ stream: result.res,
183
+ res: {
184
+ status: result.status,
185
+ headers: result.headers
186
+ }
187
+ };
188
+ };
189
+
190
+ proto.putMeta = async function putMeta(name, meta, options) {
191
+ return await this.copy(name, name, {
192
+ meta: meta || {},
193
+ timeout: options && options.timeout,
194
+ ctx: options && options.ctx
195
+ });
196
+ };
197
+
198
+ proto.list = async function list(query, options) {
199
+ // prefix, marker, max-keys, delimiter
200
+
201
+ const params = this._objectRequestParams('GET', '', options);
202
+ params.query = query;
203
+ params.xmlResponse = true;
204
+ params.successStatuses = [200];
205
+
206
+ const result = await this.request(params);
207
+ let objects = result.data.Contents || [];
208
+ const that = this;
209
+ if (objects) {
210
+ if (!Array.isArray(objects)) {
211
+ objects = [objects];
212
+ }
213
+ objects = objects.map(obj => ({
214
+ name: obj.Key,
215
+ url: that._objectUrl(obj.Key),
216
+ lastModified: obj.LastModified,
217
+ etag: obj.ETag,
218
+ type: obj.Type,
219
+ size: Number(obj.Size),
220
+ storageClass: obj.StorageClass,
221
+ owner: {
222
+ id: obj.Owner.ID,
223
+ displayName: obj.Owner.DisplayName
224
+ }
225
+ }));
226
+ }
227
+ let prefixes = result.data.CommonPrefixes || null;
228
+ if (prefixes) {
229
+ if (!Array.isArray(prefixes)) {
230
+ prefixes = [prefixes];
231
+ }
232
+ prefixes = prefixes.map(item => item.Prefix);
233
+ }
234
+ return {
235
+ res: result.res,
236
+ objects,
237
+ prefixes,
238
+ nextMarker: result.data.NextMarker || null,
239
+ isTruncated: result.data.IsTruncated === 'true'
240
+ };
241
+ };
242
+
243
+ proto.listV2 = async function listV2(query = {}, options = {}) {
244
+ const continuation_token = query['continuation-token'] || query.continuationToken;
245
+ delete query['continuation-token'];
246
+ delete query.continuationToken;
247
+ if (continuation_token) {
248
+ options.subres = Object.assign(
249
+ {
250
+ 'continuation-token': continuation_token
251
+ },
252
+ options.subres
253
+ );
254
+ }
255
+ const params = this._objectRequestParams('GET', '', options);
256
+ params.query = Object.assign({ 'list-type': 2 }, query);
257
+ delete params.query['continuation-token'];
258
+ delete query.continuationToken;
259
+ params.xmlResponse = true;
260
+ params.successStatuses = [200];
261
+
262
+ const result = await this.request(params);
263
+ let objects = result.data.Contents || [];
264
+ const that = this;
265
+ if (objects) {
266
+ if (!Array.isArray(objects)) {
267
+ objects = [objects];
268
+ }
269
+
270
+ objects = objects.map(obj => {
271
+ let owner = null;
272
+ if (obj.Owner) {
273
+ owner = {
274
+ id: obj.Owner.ID,
275
+ displayName: obj.Owner.DisplayName
276
+ };
277
+ }
278
+ return {
279
+ name: obj.Key,
280
+ url: that._objectUrl(obj.Key),
281
+ lastModified: obj.LastModified,
282
+ etag: obj.ETag,
283
+ type: obj.Type,
284
+ size: Number(obj.Size),
285
+ storageClass: obj.StorageClass,
286
+ owner
287
+ };
288
+ });
289
+ }
290
+ let prefixes = result.data.CommonPrefixes || null;
291
+ if (prefixes) {
292
+ if (!Array.isArray(prefixes)) {
293
+ prefixes = [prefixes];
294
+ }
295
+ prefixes = prefixes.map(item => item.Prefix);
296
+ }
297
+ return {
298
+ res: result.res,
299
+ objects,
300
+ prefixes,
301
+ isTruncated: result.data.IsTruncated === 'true',
302
+ keyCount: +result.data.KeyCount,
303
+ continuationToken: result.data.ContinuationToken || null,
304
+ nextContinuationToken: result.data.NextContinuationToken || null
305
+ };
306
+ };
307
+
308
+ /**
309
+ * Restore Object
310
+ * @param {String} name the object key
311
+ * @param {Object} options {type : Archive or ColdArchive}
312
+ * @returns {{res}}
313
+ */
314
+ proto.restore = async function restore(name, options = { type: 'Archive' }) {
315
+ options = options || {};
316
+ options.subres = Object.assign({ restore: '' }, options.subres);
317
+ if (options.versionId) {
318
+ options.subres.versionId = options.versionId;
319
+ }
320
+ const params = this._objectRequestParams('POST', name, options);
321
+ if (options.type === 'ColdArchive') {
322
+ const paramsXMLObj = {
323
+ RestoreRequest: {
324
+ Days: options.Days ? options.Days : 2,
325
+ JobParameters: {
326
+ Tier: options.JobParameters ? options.JobParameters : 'Standard'
327
+ }
328
+ }
329
+ };
330
+ params.content = obj2xml(paramsXMLObj, {
331
+ headers: true
332
+ });
333
+ params.mime = 'xml';
334
+ }
335
+ params.successStatuses = [202];
336
+
337
+ const result = await this.request(params);
338
+
339
+ return {
340
+ res: result.res
341
+ };
342
+ };
343
+
344
+ proto._objectUrl = function _objectUrl(name) {
345
+ return this._getReqUrl({ bucket: this.options.bucket, object: name });
346
+ };
347
+
348
+ /**
349
+ * generator request params
350
+ * @return {Object} params
351
+ *
352
+ * @api private
353
+ */
354
+
355
+ proto._objectRequestParams = function (method, name, options) {
356
+ if (!this.options.bucket && !this.options.cname) {
357
+ throw new Error('Please create a bucket first');
358
+ }
359
+
360
+ options = options || {};
361
+ name = this._objectName(name);
362
+ const params = {
363
+ object: name,
364
+ bucket: this.options.bucket,
365
+ method,
366
+ subres: options && options.subres,
367
+ additionalHeaders: options && options.additionalHeaders,
368
+ timeout: options && options.timeout,
369
+ ctx: options && options.ctx
370
+ };
371
+
372
+ if (options.headers) {
373
+ params.headers = {};
374
+ copy(options.headers).to(params.headers);
375
+ }
376
+ return params;
377
+ };
378
+
379
+ proto._objectName = function (name) {
380
+ return name.replace(/^\/+/, '');
381
+ };
382
+
383
+ proto._statFile = function (filepath) {
384
+ return new Promise((resolve, reject) => {
385
+ fs.stat(filepath, (err, stats) => {
386
+ if (err) {
387
+ reject(err);
388
+ } else {
389
+ resolve(stats);
390
+ }
391
+ });
392
+ });
393
+ };
394
+
395
+ proto._convertMetaToHeaders = function (meta, headers) {
396
+ if (!meta) {
397
+ return;
398
+ }
399
+
400
+ Object.keys(meta).forEach(k => {
401
+ headers[`x-oss-meta-${k}`] = meta[k];
402
+ });
403
+ };
404
+
405
+ proto._deleteFileSafe = function (filepath) {
406
+ return new Promise(resolve => {
407
+ fs.exists(filepath, exists => {
408
+ if (!exists) {
409
+ resolve();
410
+ } else {
411
+ fs.unlink(filepath, err => {
412
+ if (err) {
413
+ debug('unlink %j error: %s', filepath, err);
414
+ }
415
+ resolve();
416
+ });
417
+ }
418
+ });
419
+ });
420
+ };
@@ -0,0 +1,295 @@
1
+ /**
2
+ * Copyright(c) ali-sdk and other contributors.
3
+ * MIT Licensed
4
+ *
5
+ * Authors:
6
+ * rockuw <rockuw@gmail.com> (http://rockuw.com)
7
+ */
8
+
9
+ /**
10
+ * Module dependencies.
11
+ */
12
+
13
+ const jstoxml = require('jstoxml');
14
+ const utility = require('utility');
15
+ const copy = require('copy-to');
16
+ const urlutil = require('url');
17
+
18
+ const proto = exports;
19
+
20
+ /**
21
+ * RTMP operations
22
+ */
23
+
24
+ /**
25
+ * Create a live channel
26
+ * @param {String} id the channel id
27
+ * @param {Object} conf the channel configuration
28
+ * @param {Object} options
29
+ * @return {Object}
30
+ */
31
+ proto.putChannel = async function putChannel(id, conf, options) {
32
+ options = options || {};
33
+ options.subres = 'live';
34
+
35
+ const params = this._objectRequestParams('PUT', id, options);
36
+ params.xmlResponse = true;
37
+ params.content = jstoxml.toXML({
38
+ LiveChannelConfiguration: conf
39
+ });
40
+ params.successStatuses = [200];
41
+
42
+ const result = await this.request(params);
43
+
44
+ let publishUrls = result.data.PublishUrls.Url;
45
+ if (!Array.isArray(publishUrls)) {
46
+ publishUrls = [publishUrls];
47
+ }
48
+ let playUrls = result.data.PlayUrls.Url;
49
+ if (!Array.isArray(playUrls)) {
50
+ playUrls = [playUrls];
51
+ }
52
+
53
+ return {
54
+ publishUrls,
55
+ playUrls,
56
+ res: result.res
57
+ };
58
+ };
59
+
60
+ /**
61
+ * Get the channel info
62
+ * @param {String} id the channel id
63
+ * @param {Object} options
64
+ * @return {Object}
65
+ */
66
+ proto.getChannel = async function getChannel(id, options) {
67
+ options = options || {};
68
+ options.subres = 'live';
69
+
70
+ const params = this._objectRequestParams('GET', id, options);
71
+ params.xmlResponse = true;
72
+ params.successStatuses = [200];
73
+
74
+ const result = await this.request(params);
75
+
76
+ return {
77
+ data: result.data,
78
+ res: result.res
79
+ };
80
+ };
81
+
82
+ /**
83
+ * Delete the channel
84
+ * @param {String} id the channel id
85
+ * @param {Object} options
86
+ * @return {Object}
87
+ */
88
+ proto.deleteChannel = async function deleteChannel(id, options) {
89
+ options = options || {};
90
+ options.subres = 'live';
91
+
92
+ const params = this._objectRequestParams('DELETE', id, options);
93
+ params.successStatuses = [204];
94
+
95
+ const result = await this.request(params);
96
+
97
+ return {
98
+ res: result.res
99
+ };
100
+ };
101
+
102
+ /**
103
+ * Set the channel status
104
+ * @param {String} id the channel id
105
+ * @param {String} status the channel status
106
+ * @param {Object} options
107
+ * @return {Object}
108
+ */
109
+ proto.putChannelStatus = async function putChannelStatus(id, status, options) {
110
+ options = options || {};
111
+ options.subres = {
112
+ live: null,
113
+ status
114
+ };
115
+
116
+ const params = this._objectRequestParams('PUT', id, options);
117
+ params.successStatuses = [200];
118
+
119
+ const result = await this.request(params);
120
+
121
+ return {
122
+ res: result.res
123
+ };
124
+ };
125
+
126
+ /**
127
+ * Get the channel status
128
+ * @param {String} id the channel id
129
+ * @param {Object} options
130
+ * @return {Object}
131
+ */
132
+ proto.getChannelStatus = async function getChannelStatus(id, options) {
133
+ options = options || {};
134
+ options.subres = {
135
+ live: null,
136
+ comp: 'stat'
137
+ };
138
+
139
+ const params = this._objectRequestParams('GET', id, options);
140
+ params.xmlResponse = true;
141
+ params.successStatuses = [200];
142
+
143
+ const result = await this.request(params);
144
+
145
+ return {
146
+ data: result.data,
147
+ res: result.res
148
+ };
149
+ };
150
+
151
+ /**
152
+ * List the channels
153
+ * @param {Object} query the query parameters
154
+ * filter options:
155
+ * - prefix {String}: the channel id prefix (returns channels with this prefix)
156
+ * - marker {String}: the channle id marker (returns channels after this id)
157
+ * - max-keys {Number}: max number of channels to return
158
+ * @param {Object} options
159
+ * @return {Object}
160
+ */
161
+ proto.listChannels = async function listChannels(query, options) {
162
+ // prefix, marker, max-keys
163
+
164
+ options = options || {};
165
+ options.subres = 'live';
166
+
167
+ const params = this._objectRequestParams('GET', '', options);
168
+ params.query = query;
169
+ params.xmlResponse = true;
170
+ params.successStatuses = [200];
171
+
172
+ const result = await this.request(params);
173
+
174
+ let channels = result.data.LiveChannel || [];
175
+ if (!Array.isArray(channels)) {
176
+ channels = [channels];
177
+ }
178
+
179
+ channels = channels.map(x => {
180
+ x.PublishUrls = x.PublishUrls.Url;
181
+ if (!Array.isArray(x.PublishUrls)) {
182
+ x.PublishUrls = [x.PublishUrls];
183
+ }
184
+ x.PlayUrls = x.PlayUrls.Url;
185
+ if (!Array.isArray(x.PlayUrls)) {
186
+ x.PlayUrls = [x.PlayUrls];
187
+ }
188
+
189
+ return x;
190
+ });
191
+
192
+ return {
193
+ channels,
194
+ nextMarker: result.data.NextMarker || null,
195
+ isTruncated: result.data.IsTruncated === 'true',
196
+ res: result.res
197
+ };
198
+ };
199
+
200
+ /**
201
+ * Get the channel history
202
+ * @param {String} id the channel id
203
+ * @param {Object} options
204
+ * @return {Object}
205
+ */
206
+ proto.getChannelHistory = async function getChannelHistory(id, options) {
207
+ options = options || {};
208
+ options.subres = {
209
+ live: null,
210
+ comp: 'history'
211
+ };
212
+
213
+ const params = this._objectRequestParams('GET', id, options);
214
+ params.xmlResponse = true;
215
+ params.successStatuses = [200];
216
+
217
+ const result = await this.request(params);
218
+
219
+ let records = result.data.LiveRecord || [];
220
+ if (!Array.isArray(records)) {
221
+ records = [records];
222
+ }
223
+ return {
224
+ records,
225
+ res: result.res
226
+ };
227
+ };
228
+
229
+ /**
230
+ * Create vod playlist
231
+ * @param {String} id the channel id
232
+ * @param {String} name the playlist name
233
+ * @param {Object} time the begin and end time
234
+ * time:
235
+ * - startTime {Number}: the begin time in epoch seconds
236
+ * - endTime {Number}: the end time in epoch seconds
237
+ * @param {Object} options
238
+ * @return {Object}
239
+ */
240
+ proto.createVod = async function createVod(id, name, time, options) {
241
+ options = options || {};
242
+ options.subres = {
243
+ vod: null
244
+ };
245
+ copy(time).to(options.subres);
246
+
247
+ const params = this._objectRequestParams('POST', `${id}/${name}`, options);
248
+ params.query = time;
249
+ params.successStatuses = [200];
250
+
251
+ const result = await this.request(params);
252
+
253
+ return {
254
+ res: result.res
255
+ };
256
+ };
257
+
258
+ /**
259
+ * Get RTMP Url
260
+ * @param {String} channelId the channel id
261
+ * @param {Object} options
262
+ * options:
263
+ * - expires {Number}: expire time in seconds
264
+ * - params {Object}: the parameters such as 'playlistName'
265
+ * @return {String} the RTMP url
266
+ */
267
+ proto.getRtmpUrl = function (channelId, options) {
268
+ options = options || {};
269
+ const expires = utility.timestamp() + (options.expires || 1800);
270
+ const res = {
271
+ bucket: this.options.bucket,
272
+ object: this._objectName(`live/${channelId}`)
273
+ };
274
+ const resource = `/${res.bucket}/${channelId}`;
275
+
276
+ options.params = options.params || {};
277
+ const query = Object.keys(options.params)
278
+ .sort()
279
+ .map(x => `${x}:${options.params[x]}\n`)
280
+ .join('');
281
+
282
+ const stringToSign = `${expires}\n${query}${resource}`;
283
+ const signature = this.signature(stringToSign);
284
+
285
+ const url = urlutil.parse(this._getReqUrl(res));
286
+ url.protocol = 'rtmp:';
287
+ url.query = {
288
+ OSSAccessKeyId: this.options.accessKeyId,
289
+ Expires: expires,
290
+ Signature: signature
291
+ };
292
+ copy(options.params).to(url.query);
293
+
294
+ return url.format();
295
+ };
@@ -0,0 +1,3 @@
1
+ declare let client: any;
2
+ export declare const setConfig: (options: any, ctx: any) => void;
3
+ export { client };