{"_id":"@aipeli/midway-qiniu","name":"@aipeli/midway-qiniu","dist-tags":{"latest":"1.0.6"},"versions":{"1.0.6":{"name":"@aipeli/midway-qiniu","version":"1.0.6","description":"qiniu object storage service on MidwayJS(koa) v3.x","main":"dist/index.js","typings":"index.d.ts","scripts":{"build":"cross-env midway-bin build -c","test":"cross-env midway-bin test --ts","cov":"cross-env midway-bin cov --ts","lint":"mwts check","lint:fix":"mwts fix"},"author":{"name":"aipeli"},"license":"MIT","keywords":["aipeli","midway","qiniu"],"devDependencies":{"@midwayjs/cli":"^1.3.6","@midwayjs/core":"^3.3.6","@midwayjs/decorator":"^3.3.4","@midwayjs/mock":"^3.3.5","@types/jest":"^28.1.3","@types/node":"^18.0.0","cross-env":"^7.0.3","jest":"^28.1.1","mwts":"^1.3.0","ts-jest":"^28.0.5","typescript":"^4.7.4"},"dependencies":{"qiniu":"^7.7.0"},"repository":{"type":"git","url":"git+https://github.com/aipeli/midway-components.git"},"bugs":{"url":"https://github.com/aipeli/midway-components/issues"},"homepage":"https://github.com/aipeli/midway-components/qiniu#readme","publishConfig":{"access":"public"},"gitHead":"f6a4e45e831126a796fd153a481140bea3d44bf2","_id":"@aipeli/midway-qiniu@1.0.6","_nodeVersion":"16.13.1","_npmVersion":"lerna/4.0.0/node@v16.13.1+x64 (win32)","dist":{"integrity":"sha512-MJkwf/F46/+tuVwb0OGtEH7w2NQPVXYvWDyTWLkVekzT5gl0GFNWteZgzbm/AjJJajKf6y8K9MGF4WwOr2uCgA==","shasum":"0dd691f933e0458c7ddc99bf6cb62e716a487563","tarball":"https://registry.npmjs.org/@aipeli/midway-qiniu/-/midway-qiniu-1.0.6.tgz","fileCount":12,"unpackedSize":24160,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCTVtdHLKzg+6vA1CLOX7d3465eftzZgMxYEnTs4jlz0wIhANHmzMy98GjPtp2LwkXqW23/vBXXhpgBMeUk8N72WjBQ"}],"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v4.10.10\r\nComment: https://openpgpjs.org\r\n\r\nwsFzBAEBCAAGBQJiutrKACEJED1NWxICdlZqFiEECWMYAoorWMhJKdjhPU1b\r\nEgJ2Vmpz4g//SdahoupsvYyYecC/sM8UibmulDTx3WjhAQeccp6Ykd9IDR4s\r\n5AgE0jgNJEn8SdmBaWWEm7m5Bh6ZmNuWDqUR64mxXRcX3V2xkadIaKOXVdV0\r\nDHxwaoF9IIFauvg8F40yfs9x+3uZyOa1k3lXGUvE7Cr9EmD5a2OvXMFh27Bw\r\n8wiSKCkARNRk9xpDGaTo1OVPAz6oCMn7vLOU77zsPMI+UK7ZWdcn3WHuOHqF\r\nAvWkjoekLTxq/IPUDo6x7H/sDWoBKNa5ONE5wQz7JyIv21I/LM7e0U5Tade+\r\ngt4wcTpM9jwGvCafy2gynz3ESB23sXlcr4uhjOg87DGpbRbHahJKT6HjTHvh\r\nG28D/96RYjHUT6ovndQNWxJ06+pUsS95revUdNMmaDqCKGcrlIegVUIl6W6L\r\nfwzZ+1MKh7BVab+SpB79lNNeIiRRF1gYU37aytuDft4AkFV2w8fmj6njXJut\r\nzf3ULBKZY+8vOLpZZnlAmkdRwf3LDvt3Cycc2ZwxTuIj0mvcH79rie8lFroM\r\nmlJ4yHlt2yJo7ven88FMhv0V2HAyuBZO6g3Pvtt5VqQDUKV1chf2A02+XNZ/\r\nYd17LFPNityqaVdSw6ck1UUu1GcQy5SzaTva4ISzBEdoNTfAB4ZQepMwrvX/\r\nHz45j4KnQ7RJ6a7Mqz3P6QF6FqAGZru2ks4=\r\n=2dIR\r\n-----END PGP SIGNATURE-----\r\n"},"_npmUser":{"name":"aipeli","email":"aipeli@163.com"},"directories":{},"maintainers":[{"name":"aipeli","email":"aipeli@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/midway-qiniu_1.0.6_1656412874020_0.15448922076883442"},"_hasShrinkwrap":false}},"time":{"created":"2022-06-28T10:41:13.976Z","1.0.6":"2022-06-28T10:41:14.193Z","modified":"2022-06-28T10:41:14.428Z"},"maintainers":[{"name":"aipeli","email":"aipeli@163.com"}],"description":"qiniu object storage service on MidwayJS(koa) v3.x","homepage":"https://github.com/aipeli/midway-components/qiniu#readme","keywords":["aipeli","midway","qiniu"],"repository":{"type":"git","url":"git+https://github.com/aipeli/midway-components.git"},"author":{"name":"aipeli"},"bugs":{"url":"https://github.com/aipeli/midway-components/issues"},"license":"MIT","readme":"<h1 align=\"center\">🎉🚀midway-qiniu</h1>\n<p>\n  <a href=\"https://www.npmjs.com/package/@aipeli/midway-qiniu\" target=\"_blank\">\n    <img alt=\"Version\" src=\"https://img.shields.io/npm/v/@aipeli/midway-qiniu.svg?color=succed\">\n  </a>\n <a href=\"https://opensource.org/licenses/ISC\" target=\"_blank\"> <img alt=\"License: MIT\" src=\"https://img.shields.io/badge/License-MIT-yellow.svg \" /> </a>\n  <img src=\"https://img.shields.io/badge/midway-%3E%3D3.0.0-blue.svg\" />  \n</p>\n\n## 七牛 🐮 免费存储空间速速注册\n\n  <a href=\"https://s.qiniu.com/yUVJ3q\" target=\"_blank\">\n    <img alt=\"\" src=\"https://dn-lego-static.qbox.me/cps/1638268217-480x300.jpg\">\n  </a>\n\n## 🏠 [项目主页](https://github.com/aipeli/midway#readme)\n\n> 使用本组件可快速基于`midway`接入七牛海量存储系统（qiniu）\n\n> qiniu object storage service qiniu on MidwayJS(koa) v3.x\n\n### 已实现接口\n\n- `form_up模式上传`\n  - putFile(targetFile: string, localFile: string, isResume: boolean = false)\n  - putStream(targetFile: string, rsStream: ReadableStream, isResume: boolean = false)\n- `resume_up模式上传`\n  - putFile(targetFile: string, localFile: string, isResume: boolean = false)\n  - putStream(targetFile: string, rsStream: ReadableStream, isResume: boolean = false)\n- publicDownloadUrl(targetFile: string)\n- privateDownloadUrl(targetFile: string, deadline: number = 60)\n- fetch(resUrl: string, targetFile: string)\n- stat(targetFile: string)\n\n## 📦 环境要求\n\n- midway &gt;=3.x\n\n## 🛠️ 安装\n\n```sh\npnpm install @aipeli/midway-qiniu\n```\n\n## ✍️ 用法\n\n```typescript\nimport { Crud, BaseController } from '@aipeli/midway-crud';\nimport { Config, Get, Inject } from '@midwayjs/decorator';\nimport * as qiniu from 'qiniu';\nimport { qiniuService } from './qiniu_manager';\n\n@Crud('/qiniu')\nexport class qiniuUploadController extends BaseController {\n  @Inject()\n  qiniu: qiniuService;\n  @Inject()\n  baseDir: string;\n  @Config('qiniu')\n  qiniuConfig: Record<string, string>;\n  // http://127.0.0.1:7001/admin/shop/qiniu/upload\n  @Get('/upload')\n  async upload() {\n    console.log(this.baseDir, __dirname);\n\n    //上传到七牛后保存的文件名\n    // const key = 'upload/1.rar'\n    const key = 'upload/midway-qiniu-test.png';\n    //要上传文件的本地路径\n    // const filePath = __dirname + '/1.rar'\n    const filePath = __dirname + '/midway-qiniu-test.png';\n    const putExtra = new qiniu.resume_up.PutExtra();\n    // 如果指定了断点记录文件，那么下次会从指定的该文件尝试读取上次上传的进度，以实现断点续传\n    // putExtra.resumeRecordFile = 'progress.log';\n    //分片上传可指定 version 字段，v2 表示分片上传 v2 , 可自定义分片大小，此处设为 6MB\n    putExtra.version = 'v2';\n    putExtra.partSize = 6 * 1024 * 1024;\n    putExtra.progressCallback = function (uploadBytes, totalBytes) {\n      console.log('progress:' + uploadBytes + '(' + totalBytes + ')');\n    };\n    try {\n      const uploadResult = await this.qiniu\n        .ResumeUpPutExtra(putExtra)\n        .putFile(key, filePath, true);\n      return { success: true, message: 'OK', data: uploadResult };\n    } catch (error) {\n      return { success: true, message: 'OK', data: error.error };\n    }\n  }\n}\n```\n\n## 🧪 配置\n\n> 配置 `config/config.default.ts`\n\n```typescript\nimport { MidwayConfig } from '@midwayjs/core';\n\nexport default {\n  qiniu: {\n    accessKey: '',\n    secretkey: '',\n    bucket: '',\n    bucketDomain: '',\n    metadata: '',\n  },\n} as MidwayConfig;\n```\n\n> 配置 `/configuration.ts`\n\n```typescript\nimport { Configuration, App } from '@midwayjs/decorator';\nimport * as koa from '@midwayjs/koa';\nimport * as validate from '@midwayjs/validate';\nimport * as info from '@midwayjs/info';\nimport { join } from 'path';\nimport * as qiniu from '@aipeli/midway-qiniu';\n@Configuration({\n  imports: [\n    koa,\n    validate,\n    qiniu,\n    {\n      component: info,\n      enabledEnvironment: ['local'],\n    },\n  ],\n  importConfigs: [join(__dirname, './config')],\n})\nexport class ContainerLifeCycle {\n  @App()\n  app: koa.Application;\n\n  async onReady() {}\n}\n```\n\n## 🧑 开发人员\n\n- 🧑 aipeli\n  - 🌏 Website: http://www.fast-js.com\n  - 💼 GitHub: [@aipeli/midway](https://github.com/aipeli/midway)\n\n## 🤝 贡献\n\n欢迎投稿、问题和功能请求！ [issues 地址](https://github.com/aipeli/midway/issues).\n\n## ⭐️ 支持\n\n如果项目对你有帮助，请给我一个 start⭐️ 吧!\n\n- 💼 GitHub: [@aipeli/midway](https://github.com/aipeli/midway)\n\n## 📝 License\n\nCopyright © 2022 [aipeli](https://github.com/aipeli). This project is [MIT](LICENSE) licensed.\n\n---\n\n_This README was generated with ❤️ by [fast-readme](https://www.npmjs.com/package/@fastjsui/fast-readme)_\n","readmeFilename":"README.md"}