云服务器内容精选
-
可用的configurer 您可通过configurer(obs命名空间中的私有类型)对ObsClient进行配置,可用的configurer见下表: 创建方式 描述 建议值 WithSslVerifyAndPemCerts(sslVerify bool, pemCerts []byte) 配置验证服务端证书的参数。默认为不验证。 N/A WithHeaderTimeout(headerTimeout int) 配置获取响应头的超时时间。默认为60秒。 [10,60] WithMaxConnections(maxIdleConns int) 配置允许最大HTTP空闲连接数。默认为1000。 N/A WithConnectTimeout(connectTimeout int) 配置建立HTTP/HTTPS连接的超时时间(单位:秒)。默认为60秒。 [10,60] WithSocketTimeout(socketTimeout int) 配置读写数据的超时时间(单位:秒)。默认为60秒。 [10,60] WithIdleConnTimeout(idleConnTimeout int) 配置空闲的HTTP连接在连接池中的超时时间(单位:秒)。默认为30秒。 默认 WithMaxRetryCount(maxRetryCount int) 配置HTTP/HTTPS连接异常时的请求重试次数。默认为3次。 [1,5] WithProxyUrl(proxyUrl string) 配置HTTP代理。 N/A WithCustomDomainName(cname bool) 是否通过自定义 域名 访问OBS服务。默认为false。 默认 WithHttpTransport(transport *http.Transport) 配置自定义的Transport。 默认 WithRequestContext(ctx context.Context) 配置每次HTTP请求的上下文。 N/A WithMaxRedirectCount(maxRedirectCount int) 配置HTTP/HTTPS请求重定向的最大次数。默认为3次。 [1,5] WithSecurityToken(securityToken string) 配置临时访问密钥中的SecurityToken N/A 建议值为N/A的表示需要根据实际情况进行设置。 如网络状况不佳,建议增大WithConnectTimeout和WithSocketTimeout的值。
-
代码示例 您可以通过New函数创建OBS客户端,永久访问密钥(AK/SK)创建OBS客户端示例代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 // 引入依赖包 import ( obs "github.com/huaweicloud/huaweicloud-sdk-go-obs/obs" ) func main() { //推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险。 //您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html。 ak := os.Getenv("AccessKeyID") sk := os.Getenv("SecretAccessKey") // endpoint填写Bucket对应的Endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写。 endPoint := "https://obs.cn-north-4.myhuaweicloud.com" // 创建obsClient实例 obsClient, err := obs.New(ak, sk, endPoint) if err == nil { // 使用访问OBS // 关闭obsClient obsClient.Close() } } 携带代理proxy创建OBS客户端代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 // 引入依赖包 import ( "obs" ) func main() { //推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险。 //您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html。 ak := os.Getenv("AccessKeyID") sk := os.Getenv("SecretAccessKey") // endpoint填写Bucket对应的Endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写。 endPoint := "https://obs.cn-north-4.myhuaweicloud.com" // 创建obsClient实例 obsClient, err := obs.New(ak, sk, endPoint, obs.WithProxyUrl("https://username:password!@yourProxy")) if err == nil { // 使用访问OBS // 关闭obsClient obsClient.Close() } } 临时访问密钥(AK/SK和SecurityToken)创建OBS客户端代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 // 引入依赖包 import ( obs "github.com/huaweicloud/huaweicloud-sdk-go-obs/obs" ) func main() { //推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险。 //您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html。 ak := os.Getenv("AccessKeyID") sk := os.Getenv("SecretAccessKey") // 【可选】如果使用临时AK/SK和SecurityToken访问OBS,同样建议您尽量避免使用硬编码,以降低信息泄露风险。您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。 // securityToken := os.Getenv("SecurityToken") // endpoint填写Bucket对应的Endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写。 endPoint := "https://obs.cn-north-4.myhuaweicloud.com" // 创建obsClient实例 // 如果使用临时AKSK和SecurityToken访问OBS,需要在创建实例时通过obs.WithSecurityToken方法指定securityToken值。 obsClient, err := obs.New(ak, sk, endPoint, obs.WithSecurityToken(securityToken)) if err == nil { // 使用访问OBS // 关闭obsClient obsClient.Close() } } 您还可以通过配置系统环境变量的方式或者通过访问E CS 服务器获取临时访问密钥的方式创建OBS客户端。 从环境变量中获取访问密钥创建OBS客户端的代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 // 引入依赖包 import ( obs "github.com/huaweicloud/huaweicloud-sdk-go-obs/obs" ) func main() { //推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险。 //您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html。 ak := os.Getenv("AccessKeyID") sk := os.Getenv("SecretAccessKey") // 【可选】如果使用临时AK/SK和SecurityToken访问OBS,同样建议您尽量避免使用硬编码,以降低信息泄露风险。您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。 // securityToken := os.Getenv("SecurityToken") // endpoint填写Bucket对应的Endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写。 endPoint := "https://obs.cn-north-4.myhuaweicloud.com" // 创建obsClient实例 // 如果使用临时AKSK和SecurityToken访问OBS,需要在创建实例时通过obs.WithSecurityToken方法指定securityToken值。 obsClient, err := obs.New(ak, sk, endPoint, obs.WithSecurityProviders(obs.NewEnvSecurityProvider("")) if err == nil { // 使用访问OBS // 关闭obsClient obsClient.Close() } } 以上方式会从当前系统的环境变量中寻找访问密钥,需要对应在环境变量中定义OBS_AC CES S_KEY_ID、OBS_SECRET_ACCESS_KEY字段。同时如果采用临时访问密钥时,还需要在环境变量中定义OBS_SECURITY_TOKEN字段。 从ECS获取临时访问密钥创建OBS客户端的代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 // 引入依赖包 import ( obs "github.com/huaweicloud/huaweicloud-sdk-go-obs/obs" ) func main() { //推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险。 //您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html。 ak := os.Getenv("AccessKeyID") sk := os.Getenv("SecretAccessKey") // 【可选】如果使用临时AK/SK和SecurityToken访问OBS,同样建议您尽量避免使用硬编码,以降低信息泄露风险。您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。 // securityToken := os.Getenv("SecurityToken") // endpoint填写Bucket对应的Endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写。 endPoint := "https://obs.cn-north-4.myhuaweicloud.com" // 创建obsClient实例 // 如果使用临时AKSK和SecurityToken访问OBS,需要在创建实例时通过obs.WithSecurityToken方法指定securityToken值。 obsClient, err := obs.New(ak, sk, endPoint, obs.WithSecurityProviders(obs.NewEcsSecurityProvider(1)) if err == nil { // 使用访问OBS // 关闭obsClient obsClient.Close() } } 当应用程序部署在ECS服务器上且该ECS绑定了相关委托项时,可以采用以上方式从ECS服务器上自动获取临时访问密钥。 使用链式方式从系统环境变量及ECS上获取访问密钥创建OBS客户端的代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 // 引入依赖包 import ( obs "github.com/huaweicloud/huaweicloud-sdk-go-obs/obs" ) func main() { //推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险。 //您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html。 ak := os.Getenv("AccessKeyID") sk := os.Getenv("SecretAccessKey") // 【可选】如果使用临时AK/SK和SecurityToken访问OBS,同样建议您尽量避免使用硬编码,以降低信息泄露风险。您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。 // securityToken := os.Getenv("SecurityToken") // endpoint填写Bucket对应的Endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写。 endPoint := "https://obs.cn-north-4.myhuaweicloud.com" // 创建obsClient实例 // 如果使用临时AKSK和SecurityToken访问OBS,需要在创建实例时通过obs.WithSecurityToken方法指定securityToken值。 obsClient, err := obs.New(ak, sk, endPoint, obs.WithSecurityProviders(obs.NewEnvSecurityProvider(""), obs.NewEcsSecurityProvider(1)) ) if err == nil { // 使用访问OBS // 关闭obsClient obsClient.Close() } } 以上初始化过程指定以链式的方式从环境变量和ECS中顺序获取访问密钥,并采用第一组成功获取到的访问密钥创建obsClient。 您的工程中可以有多个ObsClient,也可以只有一个ObsClient。 ObsClient是协程安全的,可在并发场景下使用。 ObsClient在调用ObsClient.close方法关闭后不能再次使用。 您可以通过调用WithHttpTransport传入自定义Transport实现指定单Host最大连接数的功能,示例代码如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 // 引入依赖包 import ( "time" obs "github.com/huaweicloud/huaweicloud-sdk-go-obs/obs" ) // 创建ObsClient结构体 var obsClient, err = obs.New(ak, sk, endpoint, obs.WithHttpTransport(transport)) func main() { //推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险。 //您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html。 ak := os.Getenv("AccessKeyID") sk := os.Getenv("SecretAccessKey") // 【可选】如果使用临时AK/SK和SecurityToken访问OBS,同样建议您尽量避免使用硬编码,以降低信息泄露风险。您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。 // securityToken := os.Getenv("SecurityToken") // endpoint填写Bucket对应的Endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写。 endPoint := "https://obs.cn-north-4.myhuaweicloud.com" // 初始化自定义transport var maxIdleConns = 1000 var maxConnsPerHost = 1000 var idleConnTimeout = 30 var transport = &http.Transport{ MaxIdleConns: maxIdleConns, MaxIdleConnsPerHost: maxIdleConns, MaxConnsPerHost: maxConnsPerHost, IdleConnTimeout: time.Second * time.Duration(idleConnTimeout), } // 创建obsClient实例 // 如果使用临时AKSK和SecurityToken访问OBS,需要在创建实例时通过obs.WithSecurityToken方法指定securityToken值。 obsClient, err := obs.New(ak, sk, endPoint,obs.WithHttpTransport(transport)) if err == nil { // 使用访问OBS // 关闭obsClient obsClient.Close() } } 只有在Golang 1.11以上的版本中才支持在Transport结构中指定MaxConnsPerHost参数。 如果指定了自定义的Transport,则无法通过WithMaxConnections、WithProxyUrl等配置方法配置Transport相关的最大空闲连接数、代理配置等参数,对应参数应直接在自定义Transport中指定。
-
参数描述 字段名 类型 约束 说明 ak string 必选 访问密钥中的AK。 sk string 必选 访问密钥中的SK。 endpoint string 必选 连接OBS的服务地址。包含协议类型、域名(或IP)、端口号。示例:https://your-endpoint:443。(出于安全性考虑,建议使用https协议) 您可以从这里查看OBS当前开通的服务地址。 securityToken string 可选 临时访问密钥中的SecurityToken。 configurers configurer(obs包中的私有类型) 可选 一组用于配置ObsClient的参数,可进行连接超时时间、最大重试次数、最大连接数等配置。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格