文档首页 > > SDK参考> Python> 初始化> 创建OBS客户端

创建OBS客户端

分享
更新时间: 2019/11/21 GMT+08:00

OBS客户端(ObsClient)是访问OBS服务的Python客户端,它为调用者提供一系列与OBS服务进行交互的接口,用于管理、操作桶(Bucket)和对象(Object)等OBS服务上的资源。使用OBS Python SDK向OBS发起请求,您需要初始化一个ObsClient实例,并根据需要修改客户端初始化配置参数。

  • 您可以通过构造函数创建OBS客户端,永久访问密钥(AK/SK)创建OBS客户端代码如下:
    # 引入模块
    from obs import ObsClient
    
    # 创建ObsClient实例
    obsClient = ObsClient(
        access_key_id='*** Provide your Access Key ***',
        secret_access_key='*** Provide your Secret Key ***',
        server='https://your-endpoint'
    )
    
    # 使用访问OBS
    
    # 关闭obsClient
    obsClient.close()
  • 临时访问密钥(AK/SK和SecurityToken)创建OBS客户端代码如下:
    # 引入模块
    from obs import ObsClient
    
    # 创建ObsClient实例
    obsClient = ObsClient(
        access_key_id='*** Provide your Access Key ***',
        secret_access_key='*** Provide your Secret Key ***',
        security_token='*** Provide your Security Token ***',
        server='https://your-endpoint'
    )
    
    # 使用访问OBS
    
    # 关闭obsClient
    obsClient.close()
  • 您还可以通过配置系统环境变量的方式或者通过访问ECS服务器获取临时访问密钥的方式创建OBS客户端。
    • 使用ENV方式创建OBS客户端的代码如下:
      # 引入模块
      from obs import ObsClient
      from obs import loadtoken
      
      # 创建ObsClient实例
      # 提供ENV方式获取访问密钥
      obsClient = ObsClient(
          server='https://your-endpoint',
          security_provider_policy='ENV'
      )
      
      # 使用访问OBS
      
      # 关闭obsClient
      obsClient.close()

      以上方式会从当前系统的环境变量中寻找访问密钥,需要对应在环境变量中定义OBS_ACCESS_KEY_ID、OBS_SECRET_ACCESS_KEY字段。同时如果采用临时访问密钥时,还需要在环境变量中定义OBS_SECURITY_TOKEN字段。

    • 使用ECS方式创建OBS客户端的代码如下:
      # 引入模块
      from obs import ObsClient
      from obs import loadtoken
      
      # 创建ObsClient实例
      # 提供ECS方式获取临时访问密钥
      obsClient = ObsClient(
          server='https://your-endpoint',
          security_provider_policy='ECS'
      )
      
      # 使用访问OBS
      
      # 关闭obsClient
      obsClient.close()

      当应用程序部署在ECS服务器上时,可以采用以上方式从ECS服务器上自动获取临时访问密钥和定期自动刷新。

      在使用该方式获取临时访问密钥时,请确保服务端和应用程序部署所在环境的UTC时间一致,否则可能会导致临时访问密钥无法及时刷新的问题。

  • 除了上述指定一种方式获取访问密钥外,您还可以以链式的形式从环境变量及ECS服务器上进行搜索以获取对应的访问密钥。
    • 您可以通过设定security_provider_policy参数为OBS_DEFAULT来指定OBS客户端以链式的方式搜索访问密钥:
      # 引入模块
      from obs import ObsClient
      from obs import loadtoken
      
      # 创建ObsClient实例
      # 以链式的方式从环境变量和ECS中搜索访问密钥 
      obsClient = ObsClient(
          server='https://your-endpoint',
          security_provider_policy='OBS_DEFAULT'
      )
      
      # 使用访问OBS
      
      # 关闭obsClient
      obsClient.close()

      以上方式通过设定security_provider_policy为OBS_DEFAULT,可以指定以链式的方式从预定义方式列表中搜索访问密钥。当前默认提供从环境变量中以及从ECS服务器上获取访问密钥两种预定义搜索方式,并按照先从环境变量,再从ECS服务器的顺序进行搜索。链式搜索方式会以第一组成功获取到的访问密钥创建OBS客户端。

  • 您的工程中可以有多个ObsClient,也可以只有一个ObsClient。
  • ObsClient是线程安全的,可在并发场景下使用。
分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

跳转到云社区