| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- /* eslint-disable */
- import { loadEnv } from "vite"
- import archiver from "archiver"
- import fs from "fs"
- import OSS from "ali-oss"
- import { format } from "date-fns"
- import { Buffer } from "node:buffer"
- import COS from "cos-nodejs-sdk-v5"
- async function ossUpload(zipPath, destPath, version) {
- let client = new OSS({
- accessKeyId: "LTAI5tLTf572KFxNQS64gQBY",
- accessKeySecret: "lUKCJE2vxTcJirgfyk2Ihl7HoryhCD",
- region: "oss-us-east-1",
- bucket: "short-play-assect"
- })
- let { url } = await client.put(
- `${destPath}/${format(new Date(), "yyyyMMddHHmmss")}.zip`,
- zipPath,
- {
- headers: {
- "x-oss-object-acl": "public-read"
- }
- }
- )
- url = url.replace("http://", "https://")
- console.log("package uploaded: %s", url.replace("http://", "https://"))
- await client.put(
- `${destPath}/meta.json`,
- Buffer.from(JSON.stringify({ url, version: version })),
- {
- headers: { "x-oss-object-acl": "public-read" }
- }
- )
- }
- async function cosUpload(filePath, destPath, version) {
- var cos = new COS({
- SecretId: "IKIDhOGOYkw59GUh0FMONLJKPLGfzJ5oeaWO",
- SecretKey: "sfSC9ACC9zjVK7BMUew8SmEdtBgDi6dI"
- })
- const url = await new Promise((resolve, reject) => {
- cos.putObject(
- {
- Bucket: "duanju2-1321229830",
- Region: "ap-jakarta",
- Key: `${destPath}/${format(new Date(), "yyyyMMddHHmmss")}.zip`,
- StorageClass: "STANDARD",
- Body: fs.createReadStream(filePath),
- ACL: "public-read"
- },
- function (err, data) {
- if (err) reject(err)
- else resolve("https://" + data.Location)
- }
- )
- })
- console.log("package uploaded: %s", url)
- await new Promise((resolve, reject) => {
- cos.putObject(
- {
- Bucket: "duanju2-1321229830",
- Region: "ap-jakarta",
- Key: `${destPath}/meta.json`,
- StorageClass: "STANDARD",
- Body: Buffer.from(JSON.stringify({ url, version: version })),
- ACL: "public-read"
- },
- function (err, data) {
- if (err) reject(err)
- else resolve(data)
- }
- )
- })
- }
- export default function VitePluginUploadPackage() {
- let mode = ""
- let env = {}
- return {
- name: "upload-package",
- config(config, { command }) {
- mode = config.mode
- env = loadEnv(mode, process.cwd())
- },
- async closeBundle(options) {
- if (env["VITE_APP"] !== "true") return
- const meta = JSON.parse(fs.readFileSync("./src/assets/meta.json"))
- const sourceDir = "dist"
- const outputFilePath = "dist.zip"
- await new Promise((resolve, reject) => {
- const output = fs.createWriteStream(outputFilePath)
- output.on("close", function () {
- resolve()
- })
- const archive = archiver("zip")
- archive.pipe(output)
- archive.directory(sourceDir, false)
- archive.finalize()
- }).catch(e => {
- console.log(e)
- })
- switch (env["VITE_STORAGE_TYPE"]) {
- case "oss":
- await ossUpload(
- outputFilePath,
- `packages/${env["VITE_PACKAGE"]}`,
- meta.version
- )
- break
- case "cos":
- await cosUpload(
- outputFilePath,
- `packages/${env["VITE_PACKAGE"]}`,
- meta.version
- )
- break
- }
- }
- }
- }
|