nodejs对接七牛云的对象存储上传文件

1 篇文章 0 订阅
1 篇文章 0 订阅

上传流程
#### 上传流程

1.申请上传权限

  • 安装七牛云的SDK
npm install qiniu
  • 在项目中引入,定义好鉴权对象mac
const qiniu = require('qiniu') // 引入七牛云的SDK
var accessKey = 'your access key';
var secretKey = 'your secret key';
var mac = new qiniu.auth.digest.Mac(accessKey, secretKey);

accessKey 和 searetKey 可以在 https://portal.qiniu.com/user/key 查看
在这里插入图片描述
2.获取上传凭证

var options = {
  scope: 'mySpace',  // 必填, 七牛云控制台添加的空间名称
  expires: 7200,  // expires非必填, 在不指定上传凭证的有效时间情况下,默认有效期为1个小时。expires单位为秒
  returnBody: '{"key":"$(key)","hash":"$(etag)","fsize":$(fsize),"bucket":"$(bucket)","name":"$(x:name)"}' 
  // returnBody非必填, 有时候我们希望能自定义这个返回的JSON格式的内容,可以通过设置returnBody参数来实现。
};
var putPolicy = new qiniu.rs.PutPolicy(options); // 配置
var uploadToken = putPolicy.uploadToken(mac); // 获取上传凭证

如果还没有空间options.scope,需要到七牛云控制台新增
https://portal.qiniu.com/kodo/bucket

3.使用上传凭证上传文件并返回上传结果

  • 配置
var config = new qiniu.conf.Config();
// 空间对应的机房
config.zone = qiniu.zone.Zone_z0;
// 是否使用https域名
//config.useHttpsDomain = true;
// 上传是否使用cdn加速
//config.useCdnDomain = true;
机房Zone对象
华东qiniu.zone.Zone_z0
华北qiniu.zone.Zone_z1
华南qiniu.zone.Zone_z2
华美qiniu.zone.Zone_na0
  • 上传
var formUploader = new qiniu.form_up.FormUploader(config);

// formUploader.putFile方法上传文件
// 第一个属性为上传凭证
// 第二个属性为上传文件要以什么命名  null 则随机命名
// 第三个为文件的相对地址, 相对为当前执行文件的地址
// 第四个属性putExtra, 应该是额外需要的参数,用new qiniu.form_up.PutExtra()获取
// 第五个为回调函数,respErr失败内容  respBody主体内容  respInfo信息内容
var putExtra = new qiniu.form_up.PutExtra();

formUploader.putFile(uploadToken, null, './image.png', putExtra, function (respErr, respBody, respInfo) {
   if (respErr) {
     	throw respErr;
   }
   if (respInfo.statusCode == 200) {
     	console.log(respBody);
     	// 如果成功,这里内容便是 图片信息
   } else {
     	console.log(respInfo.statusCode);
     	console.log(respBody);
   }
});
// respBody的信息
{
  hash: 'Fheolstp8e4qRrWz1e9v8RBvczxO',
  key: 'Fheolstp8e4qRrWz1e9v8RBvczxO'
}
// 如果在前面的options 配置了returnBody属性
{
  key: 'Fheolstp8e4qRrWz1e9v8RBvczxO',
  hash: 'Fheolstp8e4qRrWz1e9v8RBvczxO',
  fsize: 2145,
  bucket: 'mySpace',
  name: 'null'
}

基本七牛云的上传流程就是这样了

官方文档 https://developer.qiniu.com/kodo/1289/nodejs

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值