
# 创建OBS客户端(Node.js SDK)
![](https://support.huaweicloud.com/sdk-nodejs-devg-obs/public_sys-resources/notice_3.0-zh-cn.png)
开发过程中，您有任何问题可以在GitHub上[提交issue](https://github.com/huaweicloud/huaweicloud-sdk-nodejs-obs/issues)，或者在[华为云对象存储服务论坛](https://bbs.huaweicloud.com/forum/forum-620-1.html)中发帖求助。
OBS客户端（ObsClient）是访问OBS服务的Node.js客户端，它为调用者提供一系列与OBS服务进行交互的接口，用于管理、操作桶（Bucket）和对象（Object）等OBS服务上的资源。使用OBS Node.js SDK发起OBS请求，您需要初始化一个ObsClient实例，并根据需要修改客户端初始化配置参数。
#### 通过构造函数创建
- 永久访问密钥（AK/SK）创建OBS客户端代码如下：
  ```
  // 引入obs库
  // 使用npm安装
  const ObsClient = require("esdk-obs-nodejs");
  // 使用源码安装
  // var ObsClient = require('./lib/obs');
  // 创建ObsClient实例
  const obsClient = new ObsClient({
    // 推荐通过环境变量获取AKSK，这里也可以使用其他外部引入方式传入，如果使用硬编码可能会存在泄露风险
    // 您可以登录访问管理控制台获取访问密钥AK/SK，获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html
    access_key_id: process.env.ACCESS_KEY_ID,
    secret_access_key: process.env.SECRET_ACCESS_KEY,
    // endpoint填写Bucket对应的Endpoint, 这里以华北-北京四为例，其他地区请按实际情况填写
    server: "https://obs.cn-north-4.myhuaweicloud.com",
  });
  // 使用访问OBS
  // 关闭obsClient
  // obsClient.close();
  ```
  
- 临时访问密钥（AK/SK/SecurityToken）创建OBS客户端代码如下：
  ```
  // 引入obs库
  // 使用npm安装
  const ObsClient = require("esdk-obs-nodejs");
  // 使用源码安装
  // var ObsClient = require('./lib/obs');
  // 创建ObsClient实例
  const obsClient = new ObsClient({
    // 推荐通过环境变量获取AKSK，这里也可以使用其他外部引入方式传入，如果使用硬编码可能会存在泄露风险
    // 您可以登录访问管理控制台获取访问密钥AK/SK，获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html
    access_key_id: process.env.ACCESS_KEY_ID,
    secret_access_key: process.env.SECRET_ACCESS_KEY,
    // 如果使用临时AK/SK和SecurityToken访问OBS，同样建议您尽量避免使用硬编码，以降低信息泄露风险。您可以通过环境变量获取访问密钥AK/SK，也可以使用其他外部引入方式传入
    security_token: process.env.SECURITY_TOKEN,
    // endpoint填写Bucket对应的Endpoint, 这里以华北-北京四为例，其他地区请按实际情况填写
    server: "https://obs.cn-north-4.myhuaweicloud.com",
  });
  // 使用访问OBS
  // 关闭obsClient
  // obsClient.close();
  ```
  
 
#### 通过工厂方法创建
- 永久访问密钥（AK/SK）创建OBS客户端代码如下：
  ```
  // 引入obs库
  // 使用npm安装
  var ObsClient = require('esdk-obs-nodejs');
  // 使用源码安装
  // var ObsClient = require('./lib/obs');
  // 通过工厂方法初始化ObsClient实例
  var obsClient = new ObsClient();
  obsClient.factory({
    // 推荐通过环境变量获取AKSK，这里也可以使用其他外部引入方式传入，如果使用硬编码可能会存在泄露风险
    // 您可以登录访问管理控制台获取访问密钥AK/SK，获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html
    access_key_id: process.env.ACCESS_KEY_ID,
    secret_access_key: process.env.SECRET_ACCESS_KEY,
    // endpoint填写Bucket对应的Endpoint, 这里以华北-北京四为例，其他地区请按实际情况填写
    server: "https://obs.cn-north-4.myhuaweicloud.com",
  });
  // 使用访问OBS
  // 关闭obsClient
  // obsClient.close();
  ```
  
- 临时访问密钥（AK/SK/SecurityToken）创建OBS客户端代码如下：
  ```
  // 引入obs库
  // 使用npm安装
  var ObsClient = require('esdk-obs-nodejs');
  // 使用源码安装
  // var ObsClient = require('./lib/obs');
  // 通过工厂方法初始化ObsClient实例
  var obsClient = new ObsClient();
  obsClient.factory({
    // 推荐通过环境变量获取AKSK，这里也可以使用其他外部引入方式传入，如果使用硬编码可能会存在泄露风险
    // 您可以登录访问管理控制台获取访问密钥AK/SK，获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html
    access_key_id: process.env.ACCESS_KEY_ID,
    secret_access_key: process.env.SECRET_ACCESS_KEY,
    // 如果使用临时AK/SK和SecurityToken访问OBS，同样建议您尽量避免使用硬编码，以降低信息泄露风险。您可以通过环境变量获取访问密钥AK/SK，也可以使用其他外部引入方式传入
    security_token: process.env.SECURITY_TOKEN,
    // endpoint填写Bucket对应的Endpoint, 这里以华北-北京四为例，其他地区请按实际情况填写
    server: "https://obs.cn-north-4.myhuaweicloud.com",
  });
  // 使用访问OBS
  // 关闭obsClient
  // obsClient.close();
  ```
  
![](https://support.huaweicloud.com/sdk-nodejs-devg-obs/public_sys-resources/note_3.0-zh-cn.png)
- 您的工程中可以有多个obsClient实例，也可以只有一个。

- obsClient实例在调用close方法关闭后不能再次使用。
- 配置SDK代理请参见[配置SDK代理(Node.js SDK)](https://support.huaweicloud.com/sdk-nodejs-devg-obs/obs_29_0206.html)。
 
