# 创建并配置OBS客户端
![](https://support.huaweicloud.com/sdk-php-devg-obs/public_sys-resources/notice_3.0-zh-cn.png)
开发过程中，您有任何问题可以在GitHub上[提交issue](https://github.com/huaweicloud/huaweicloud-sdk-php-obs/issues)，或者在[华为云对象存储服务论坛](https://bbs.huaweicloud.com/forum/forum-620-1.html)中发帖求助。[接口参考文档](https://support.huaweicloud.com/api-obs_php_sdk_api_zh/obs_38_0001.html)详细介绍了每个接口的参数和使用方法。
#### 操作场景
本章节指导客户创建并配置客户端，该任务是使用SDK与OBS交互的必备前置任务
#### 前提条件
初始化客户端之前，您需要先完成以下几项准备工作：
1. 了解并选择合适的SDK版本。
2. 完成服务环境和开发环境准备。
3. 下载SDK并完成安装。
 
#### 配置参数
表1参数说明 
| **参数**          | **描述**                                                                                                                                                                                                                                                                                                                                                   | **建议值**    |
|:---|:---|:---|
| key            | 访问密钥中的AK。                                                                                                                                                                                                                                                                                                                                              | N/A         |
| secret           | 访问密钥中的SK。                                                                                                                                                                                                                                                                                                                                               | N/A        |
| endpoint       | 连接OBS的服务地址。包含协议类型、域名（或IP）、端口号。示例：https://your-endpoint:443。（出于安全性考虑，建议使用https协议）                                                                                                                                                                                                                                                                      | N/A         |
| ssl_verify     | 验证服务端证书参数。可能的取值： - 服务端pem格式根证书文件路径；  - true：使用默认的CAs验证服务端证书；  - false：表示不验证服务端证书。   默认为false。 | N/A        |
| max_retry_count | HTTP/HTTPS连接异常时的请求重试次数。默认为3次。                                                                                                                                                                                                                                                                                                                          | \[1，5\]    |
| socket_timeout   | Socket层传输数据的超时时间（单位：秒）。默认为60秒。                                                                                                                                                                                                                                                                                                                           | \[10, 60\] |
| connect_timeout | 建立HTTP/HTTPS连接的超时时间（单位：秒）。默认为60秒。                                                                                                                                                                                                                                                                                                                       | \[10, 60\] |
| chunk_size         | 读socket流时的块大小（单位：字节）。默认为65536字节。                                                                                                                                                                                                                                                                                                                         | 默认       |
| is_cname         | 是否通过自定义域名访问OBS服务。默认为false。                                                                                                                                                                                                                                                                                                                              | N/A       |
   
![](https://support.huaweicloud.com/sdk-php-devg-obs/public_sys-resources/note_3.0-zh-cn.png)
- 建议值为N/A的表示需要根据实际情况进行设置。
- 如网络状况不佳，建议增大socket_timeout和connect_timeout的值。
- 如果设置的endpoint不带协议类型，则默认使用HTTPS协议。
 
#### 通过构造函数创建
```
<?php
// 引入依赖库
require 'vendor/autoload.php';
// 使用源码安装时引入SDK代码库
// require 'obs-autoloader.php';
// 声明命名空间
use Obs\ObsClient;
// 创建ObsClient实例
$obsClient = new ObsClient([
    //推荐通过环境变量获取访问密钥AK/SK，这里也可以使用其他外部引入方式传入，如果使用硬编码可能会存在泄露风险。
    //您可以登录访问管理控制台获取访问密钥AK/SK，获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html
    'key' => getenv('ACCESS_KEY_ID'),
    'secret' => getenv('SECRET_ACCESS_KEY'),
    // 【可选】如果使用临时AK/SK和SecurityToken访问OBS，同样建议您尽量避免使用硬编码，以降低信息泄露风险。您可以通过环境变量获取访问密钥AK/SK，也可以使用其他外部引入方式传入。
    // 'security_token' => getenv('SECURITY_TOKEN'),
    'endpoint' => 'https://your-endpoint',
    // 生产环境建议配置合理的超时时间和SSL验证策略
    'timeout' => 60,
    'ssl_verify' => true
]);
// 使用ObsClient访问OBS
// 关闭obsClient
$obsClient->close();
```
#### 通过工厂方法创建
```
<?php
// 引入依赖库
require 'vendor/autoload.php';
// 使用源码安装时引入SDK代码库
// require 'obs-autoloader.php';
// 声明命名空间
use Obs\ObsClient;
// 创建ObsClient实例
$obsClient = ObsClient::factory([
    //推荐通过环境变量获取访问密钥AK/SK，这里也可以使用其他外部引入方式传入，如果使用硬编码可能会存在泄露风险。
    //您可以登录访问管理控制台获取访问密钥AK/SK，获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html
    'key' => getenv('ACCESS_KEY_ID'),
    'secret' => getenv('SECRET_ACCESS_KEY'),
      // 【可选】如果使用临时AK/SK和SecurityToken访问OBS，同样建议您尽量避免使用硬编码，以降低信息泄露风险。您可以通过环境变量获取访问密钥AK/SK，也可以使用其他外部引入方式传入。
      // 'security_token' => getenv('SECURITY_TOKEN'),
    'endpoint' => 'https://your-endpoint',
]);
// 使用ObsClient访问OBS
// 关闭obsClient
$obsClient->close();
```
![](https://support.huaweicloud.com/sdk-php-devg-obs/public_sys-resources/note_3.0-zh-cn.png)
- 您的工程中可以有多个ObsClient，也可以只有一个ObsClient。

- ObsClient在调用ObsClient-\>close方法关闭后不能再次使用。
 
