笔记---华为OBS存储使用Nodejs版本

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

最近在一个新的项目上使用了nodejs,使用的框架是Fastify,其中需要上传附件到华为的OBS中,按照官方文档开发也是遇到了一些问题。


一、 获取AK和SK

购买后从官网获取

具体过程可以参考官方文档(https://support.huaweicloud.com/sdk-nodejs-devg-obs/obs_29_0102.html

二、过程

1 引入和注册插件

1.1 安装插件

npm install esdk-obs-nodejs

1.2 新建obs.js文件

// 引入obs库
// 使用npm安装
var ObsClient = require('esdk-obs-nodejs');
// 如果需要代理可以安装使用
// var ProxyAgent = require('proxy-agent');
// 使用源码安装(乳鸽)
// var ObsClient = require('./lib/obs');
const config = require('../config/config');

// 创建ObsClient实例
const obsClient = new ObsClient({
   
        //推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险。
        //您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html
        access_key_id: `${
     config.huaweiObs['AccessKeyId']}`,
        secret_access_key: `${
     config.huaweiObs['SecretAccessKey']}`,
        //这里以华北-北京四为例,其他地区请按实际情况填写
        // 写你自己的地址
        server: 'https://obs.cn-north-4.myhuaweicloud.com',
        max_retry_count : 1,
        timeout : 200,
        ssl_verify : false,
        long_conn_param : 0,
        // http_agent : new ProxyAgent('*** Provide your Network proxy ***') // 配置网络代理
});
module.exports = obsClient;

注:这里的server地址不需要加上桶名,和调用华为OBS的API的方式不同,调API需要在使用的地址上拼接上桶名,但是nodejs使用的sdk的方式,桶名作为参数进行使用。

其中的配置config,我写在了config.js中

'use strict'

const dotenv = require('dotenv');
const path = require('path');
const envFile = process.env.NODE_ENV ? `.env.${
     process.env.NODE_ENV}` : '.env';
dotenv.config({
    path: path.resolve(process.cwd(), envFile) });

const config = {
   
	huaweiObs: {
    
	    BucketName: "your BucketName", 
	    AccessKeyId: "your AccessKeyId", 
	    SecretAccessKey: "your SecretAccessKey",
    },
}
module.exports = config;

1.3 注册插件

由于的目录结构如图所示
Fastify项目文件目录结构
因此在注册插件时使用的的方式时
在app.js文件中

'use strict'

const path = require('node:path')
const AutoLoad = require('@fastify/autoload')
const yourPlugin = require('/your_path/yourPlugin');
module.exports = async function (fastify, opts) {
   
  fastify.register(AutoLoad, {
   
    dir: path.join(__dirname, 'plugins'),
    options: Object.assign({
   }, opts)
  })
  fastify.register(AutoLoad, {
   
    dir: path.join(__dirname, 'routes'),
    options: Object.assign({
   }, opts)
  })
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值