爱简收旧衣按件回收前端代码仓库
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

113 lines
3.0 KiB

  1. "use strict";
  2. const common_vendor = require("../../../common/vendor.js");
  3. const utils_ossUpload_oss_OSSConfig = require("./OSSConfig.js");
  4. const config = require("../../../config.js");
  5. function storeKey() {
  6. let s = [];
  7. let hexDigits = "0123456789abcdef";
  8. for (let i = 0; i < 36; i++) {
  9. s[i] = hexDigits.substr(Math.floor(Math.random() * 16), 1);
  10. }
  11. s[14] = "4";
  12. s[19] = hexDigits.substr(s[19] & 3 | 8, 1);
  13. s[8] = s[13] = s[18] = s[23] = "-";
  14. return s.join("");
  15. }
  16. function storeFolder() {
  17. const date = /* @__PURE__ */ new Date();
  18. const formatNumber = (n) => {
  19. n = n.toString();
  20. return n[1] ? n : "0" + n;
  21. };
  22. return [date.getFullYear(), date.getMonth() + 1, date.getDate()].map(formatNumber).join("-");
  23. }
  24. function ossUpload(filePath, key = storeKey(), folder = storeFolder()) {
  25. return new Promise((resolve, reject) => {
  26. if (folder && (folder == null ? void 0 : folder.length) > 0) {
  27. if (folder[0] == "/")
  28. folder = folder.slice(1, folder.length);
  29. if (folder[folder.length - 1] != "/")
  30. folder += "/";
  31. key = folder + key;
  32. }
  33. const filePrefixArr = filePath.split(".");
  34. key += `.${filePrefixArr[filePrefixArr.length - 1]}`;
  35. let config$1 = {
  36. url: utils_ossUpload_oss_OSSConfig.OSSConfig.host,
  37. name: "file",
  38. filePath,
  39. formData: {
  40. key,
  41. policy: utils_ossUpload_oss_OSSConfig.OSSConfig.policyBase64,
  42. OSSAccessKeyId: utils_ossUpload_oss_OSSConfig.OSSConfig.accessid,
  43. success_action_status: "200",
  44. signature: utils_ossUpload_oss_OSSConfig.OSSConfig.signature
  45. },
  46. success(res) {
  47. if (res.errMsg.includes("uploadFile:ok")) {
  48. resolve(config.ossConfig.aliOss.url + key);
  49. } else {
  50. reject(res);
  51. }
  52. },
  53. fail(err) {
  54. reject(err);
  55. }
  56. };
  57. common_vendor.index.uploadFile(config$1);
  58. });
  59. }
  60. function ossUploadImage({
  61. key,
  62. folder,
  63. compressed = true,
  64. //是否压缩
  65. success,
  66. //成功时的回调
  67. fail
  68. //失败时的回调
  69. }) {
  70. const sizeType = [compressed ? "compressed" : "original"];
  71. common_vendor.index.chooseImage({
  72. count: 1,
  73. sizeType,
  74. success(res) {
  75. ossUpload(res.tempFilePaths[0], key, folder).then(success).catch(fail);
  76. },
  77. fail
  78. });
  79. }
  80. function ossUploadVideo({
  81. key,
  82. folder,
  83. sourceType = ["album", "camera"],
  84. //album 从相册选视频, camera 使用相机拍摄
  85. compressed = true,
  86. //是否压缩所选的视频源文件
  87. maxDuration = 60,
  88. //拍摄视频最长拍摄时间, 单位秒。最长支持 60 秒
  89. camera = "back",
  90. //调用相机方向, 'front'、'back', 默认'back'
  91. success,
  92. //成功时的回调
  93. fail
  94. //失败时的回调
  95. }) {
  96. common_vendor.index.chooseVideo({
  97. sourceType,
  98. compressed,
  99. maxDuration,
  100. camera,
  101. success(res) {
  102. ossUpload(res.tempFilePath, key, folder).then(success).catch(fail);
  103. },
  104. fail
  105. });
  106. }
  107. const OSS = {
  108. ossUploadVideo,
  109. ossUploadImage,
  110. ossUpload
  111. };
  112. exports.OSS = OSS;
  113. //# sourceMappingURL=../../../../.sourcemap/mp-weixin/utils/oss-upload/oss/index.js.map