deploy-to-oss.js 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. const ALIOSS = require('ali-oss')
  2. const WebpackAliyunOSS = require("webpack-aliyun-oss")
  3. const OSSCFG = require('./aliyun-oss-config')
  4. const aliyunOSSClient = new ALIOSS({
  5. region: OSSCFG.region,
  6. accessKeyId: OSSCFG.accessKeyId,
  7. accessKeySecret: OSSCFG.accessKeySecret,
  8. bucket: OSSCFG.bucket
  9. });
  10. async function deleteFile(filename) {
  11. await aliyunOSSClient.delete(filename)
  12. }
  13. async function deleteOldFiles() {
  14. let result = await aliyunOSSClient.list({
  15. "max-keys": 1000
  16. })
  17. result.objects && result.objects.forEach(obj => {
  18. deleteFile(obj.name)
  19. })
  20. }
  21. deleteOldFiles()
  22. new WebpackAliyunOSS({
  23. from: ['./dist/**', '!./dist/**/*.html'],
  24. dist: '/',
  25. region: OSSCFG.region,
  26. deletOrigin: false,
  27. accessKeyId: OSSCFG.accessKeyId,
  28. accessKeySecret: OSSCFG.accessKeySecret,
  29. bucket: OSSCFG.bucket,
  30. setOssPath: filePath => {
  31. let index = filePath.lastIndexOf('dist')
  32. let path = filePath.substring(index + 4, filePath.length)
  33. return OSSCFG.path + '/' + path.replace(/\\/g, '/')
  34. },
  35. setHeaders(filePath) {
  36. // some operations to filePath
  37. return {
  38. 'Cache-Control': 'max-age=31536000',
  39. 'Access-Control-Allow-Origin': '*'
  40. }
  41. }
  42. }).apply()