文档首页/ 对象存储服务 OBS/ SDK参考/ PHP/ 初始化/ 创建并配置OBS客户端
更新时间:2025-11-13 GMT+08:00

创建并配置OBS客户端

开发过程中,您有任何问题可以在github上提交issue接口参考文档详细介绍了每个接口的参数和使用方法。

操作场景

本章节指导客户创建并配置客户端,该任务是使用SDK与OBS交互的必备前置任务

前提条件

初始化客户端之前,您需要先完成以下几项准备工作:

  1. 使用前需知:了解并选择合适的SDK版本。
  2. 使用前准备:完成服务环境和开发环境准备。
  3. 下载并安装SDK:下载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

  • 建议值为N/A的表示需要根据实际情况进行设置。
  • 如网络状况不佳,建议增大socket_timeout和connect_timeout的值。
  • 如果设置的endpoint不带协议类型,则默认使用HTTPS协议。

通过构造函数创建

// 声明命名空间
use Obs\ObsClient;

// 创建ObsClient实例
$obsClient = new ObsClient([
      //推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险。
      //您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/intl/zh-cn/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',
]);

// 使用访问OBS

// 关闭obsClient
$obsClient -> close();

通过工厂方法创建

// 声明命名空间
use Obs\ObsClient;

// 创建ObsClient实例
$obsClient = ObsClient::factory ( [
      //推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险。
      //您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/intl/zh-cn/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',
]);

// 使用访问OBS        

// 关闭obsClient
$obsClient -> close();
  • 您的工程中可以有多个ObsClient,也可以只有一个ObsClient。
  • ObsClient在调用ObsClient -> close方法关闭后不能再次使用。