| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- // 七牛云服务模块 - ESM 格式
- import qiniu from "qiniu";
- /**
- * 生成七牛云上传凭证
- * @param {Object} qiniuData - 七牛云配置信息
- * @param {string} qiniuData.ak - AccessKey
- * @param {string} qiniuData.sk - SecretKey
- * @param {string} qiniuData.bucket - 存储空间名称
- * @param {string} qiniuData.domain - 访问域名
- * @param {string} qiniuData.zoneUrl - 上传区域地址
- * @param {string} qiniuData.zone - 存储区域(如 z2)
- * @param {number} qiniuData.max_file_size - 最大文件大小(MB)
- * @returns {Promise<Object>} 返回上传凭证信息
- */
- export function qiniuUptoken(qiniuData) {
- return new Promise((resolve) => {
- const accessKey = qiniuData.ak;
- const secretKey = qiniuData.sk;
- const max_file_size = qiniuData.max_file_size || 400;
- const options = {
- scope: qiniuData.bucket // scope = <bucket>:<key>,key可省略
- };
- const mac = new qiniu.auth.digest.Mac(accessKey, secretKey);
- const config = new qiniu.conf.Config();
- // 设置空间对应的机房
- if (qiniuData.zone === "z2") {
- config.zone = qiniu.zone.Zone_z2;
- }
- // 参考文档: http://developer.qiniu.com/article/developer/security/put-policy.html
- const putPolicy = new qiniu.rs.PutPolicy(options);
- // putPolicy.expires = "3600" // 默认token一小时内生效
- // putPolicy.mimeLimit = "image/*" // image/*表示只允许上传图片类型
- resolve({
- uptoken: putPolicy.uploadToken(mac),
- domain: qiniuData.domain,
- zoneUrl: qiniuData.zoneUrl,
- max_file_size: max_file_size
- });
- });
- }
|