初始化

文件存储 CFS

  • 动态与公告
    • 功能发布记录
    • 产品公告
      • 关于CFS监控指标调整公告
  • 产品描述
    • 产品介绍
    • 基本概念
    • 产品特性
    • 产品规格
    • 使用限制与建议
    • 应用场景
    • 选型指导
      • 如何选择CFS和PFS
      • 如何选用CFS、BOS和CDS
  • 产品定价
    • 按需计费
    • 存储包计费
    • 余额不足提醒和欠费处理
    • 计费案例
  • 快速入门
    • 入门概述
    • 快速入门(Linux)
    • 快速入门(Windows)
  • 操作指南
    • 开通服务
    • 管理文件系统
      • 创建文件系统
      • 删除文件系统
      • 查看文件系统详情
      • 设置文件系统容量上限
    • 挂载访问
      • 添加挂载点
      • BCC挂载与卸载CFS
        • Linux系统挂载与卸载
          • 单台BCC挂载与卸载SMB协议CFS
          • 多台BCC批量挂载与卸载NFS协议CFS
          • 单台BCC挂载与卸载NFS协议CFS
        • Windows系统挂载与卸载SMB协议CFS
        • 新购BCC时挂载CFS文件系统
      • CCE使用CFS
    • 权限组管理
    • 多用户访问控制
    • 数据加密
    • 管理标签
    • 备份
    • 监控与报警
      • 查看监控
      • 报警管理
      • 指标含义
    • 云审计
  • 典型实践
    • 为不同目录设置不同的用户权限
    • 跨地域或账号使用文件系统
    • 使用SFTP上传下载CFS文件系统数据
    • 使用rsync从旧文件系统同步到CFS文件系统
    • 使用Terraform管理CFS最佳实践
    • 性能测试方法
      • Linux系统性能测试方法
      • Windows系统性能测试方法
  • API参考
    • API功能更新记录
    • API概述
    • 接口概览
    • 通用说明
    • 服务域名
    • 错误码
    • 文件系统相关接口
      • 创建文件系统
      • 更新文件系统
      • 查询文件系统
      • 查询挂载客户端
      • 释放文件系统
      • 更新文件系统标签
    • 挂载点相关接口
      • 创建挂载点
      • 查询挂载点
      • 删除挂载点
    • 数据类型
  • Go-SDK
    • 概述
    • 初始化
    • 文件系统
    • 挂载点
    • 错误处理
  • 常见问题
    • 常见问题总览
    • 一般类问题
    • 计费类问题
    • NFS协议问题
    • SMB协议问题
  • 服务等级协议SLA
    • CFS服务等级协议(SLA)
所有文档
menu
没有找到结果,请重新输入

文件存储 CFS

  • 动态与公告
    • 功能发布记录
    • 产品公告
      • 关于CFS监控指标调整公告
  • 产品描述
    • 产品介绍
    • 基本概念
    • 产品特性
    • 产品规格
    • 使用限制与建议
    • 应用场景
    • 选型指导
      • 如何选择CFS和PFS
      • 如何选用CFS、BOS和CDS
  • 产品定价
    • 按需计费
    • 存储包计费
    • 余额不足提醒和欠费处理
    • 计费案例
  • 快速入门
    • 入门概述
    • 快速入门(Linux)
    • 快速入门(Windows)
  • 操作指南
    • 开通服务
    • 管理文件系统
      • 创建文件系统
      • 删除文件系统
      • 查看文件系统详情
      • 设置文件系统容量上限
    • 挂载访问
      • 添加挂载点
      • BCC挂载与卸载CFS
        • Linux系统挂载与卸载
          • 单台BCC挂载与卸载SMB协议CFS
          • 多台BCC批量挂载与卸载NFS协议CFS
          • 单台BCC挂载与卸载NFS协议CFS
        • Windows系统挂载与卸载SMB协议CFS
        • 新购BCC时挂载CFS文件系统
      • CCE使用CFS
    • 权限组管理
    • 多用户访问控制
    • 数据加密
    • 管理标签
    • 备份
    • 监控与报警
      • 查看监控
      • 报警管理
      • 指标含义
    • 云审计
  • 典型实践
    • 为不同目录设置不同的用户权限
    • 跨地域或账号使用文件系统
    • 使用SFTP上传下载CFS文件系统数据
    • 使用rsync从旧文件系统同步到CFS文件系统
    • 使用Terraform管理CFS最佳实践
    • 性能测试方法
      • Linux系统性能测试方法
      • Windows系统性能测试方法
  • API参考
    • API功能更新记录
    • API概述
    • 接口概览
    • 通用说明
    • 服务域名
    • 错误码
    • 文件系统相关接口
      • 创建文件系统
      • 更新文件系统
      • 查询文件系统
      • 查询挂载客户端
      • 释放文件系统
      • 更新文件系统标签
    • 挂载点相关接口
      • 创建挂载点
      • 查询挂载点
      • 删除挂载点
    • 数据类型
  • Go-SDK
    • 概述
    • 初始化
    • 文件系统
    • 挂载点
    • 错误处理
  • 常见问题
    • 常见问题总览
    • 一般类问题
    • 计费类问题
    • NFS协议问题
    • SMB协议问题
  • 服务等级协议SLA
    • CFS服务等级协议(SLA)
  • 文档中心
  • arrow
  • 文件存储CFS
  • arrow
  • Go-SDK
  • arrow
  • 初始化
本页目录
  • 确认Endpoint
  • 获取密钥
  • 新建CFS Client
  • 使用AK/SK新建CFS Client
  • 使用STS创建CFS Client
  • 配置HTTPS协议访问CFS
  • 配置CFS Client
  • 使用代理
  • 设置网络参数
  • 配置生成签名字符串选项

初始化

更新时间:2025-08-21

确认Endpoint

在您使用SDK配置Endpoint时,可先阅读开发人员指南中关于CFS访问域名的部分,理解Endpoint相关的概念。百度云目前开放了多区域支持,请参考区域选择说明。

获取密钥

要使用百度云CFS,您需要拥有一个有效的AK(Access Key ID)和SK(Secret Access Key)用来进行签名认证。AK/SK是由系统分配给用户的,均为字符串,用于标识用户,为访问CFS做签名验证。

可以通过如下步骤获得并了解您的AK/SK信息:

  • 注册百度云账号
  • 创建AK/SK

新建CFS Client

CFS Client是CFS控制面服务的客户端,为开发者与CFS控制面服务进行交互提供了一系列的方法。

使用AK/SK新建CFS Client

通过AK/SK方式访问CFS,用户可以参考如下代码新建一个CFS Client:

Plain Text
1import (
2    "github.com/baidubce/bce-sdk-go/services/cfs"
3)
4
5func main() {
6    // 用户的Access Key ID和Secret Access Key
7    ACCESS_KEY_ID, SECRET_ACCESS_KEY:= <your-access-key-id>, <your-secret-access-key>
8    // 用户指定的Endpoint
9    ENDPOINT := <domain-name>
10    // 初始化一个CFSClient
11    cfsClient, err := cfs.NewClient(ACCESS_KEY_ID, SECRET_ACCESS_KEY, ENDPOINT)
12}

在上面代码中,ACCESS_KEY_ID对应控制台中的“Access Key ID”,SECRET_ACCESS_KEY对应控制台中的“Access Key Secret”,获取方式请参考《如何获取AKSK》。第三个参数ENDPOINT支持用户自己指定域名,如果设置为空字符串,会使用默认域名作为CFS的控制面服务地址。

注意:ENDPOINT参数需要用指定区域的域名来进行定义,如服务所在区域为北京,则为cfs.bj.baidubce.com。

使用STS创建CFS Client

申请STS token

CFS可以通过STS机制实现第三方的临时授权访问。STS(Security Token Service)是百度云提供的临时授权服务。通过STS,您可以为第三方用户颁发一个自定义时效和权限的访问凭证。第三方用户可以使用该访问凭证直接调用百度云的API或SDK访问百度云资源。

通过STS方式访问CFS,用户需要先通过STS的client申请一个认证字符串,申请方式可参见百度云STS使用介绍。

用STS token新建CFS Client

申请好STS后,可将STS Token配置到CFS Client中,从而实现通过STS Token创建CFS Client。

代码示例

GO SDK实现了STS服务的接口,用户可以参考如下完整代码,实现申请STS Token和创建CFS Client对象:

Plain Text
1import (
2    "fmt"
3    "github.com/baidubce/bce-sdk-go/auth" //导入认证模块
4    "github.com/baidubce/bce-sdk-go/services/cfs" //导入CFS服务模块
5    "github.com/baidubce/bce-sdk-go/services/sts" //导入STS服务模块
6)
7
8func main() {
9    // 创建STS服务的Client对象,Endpoint使用默认值
10    AK, SK := <your-access-key-id>, <your-secret-access-key>
11    stsClient, err := sts.NewClient(AK, SK)
12    EndPoint := "cfs.bj.baidubce.com"
13    if err != nil {
14        fmt.Println("create sts client object :", err)
15        return
16    }
17
18    // 获取临时认证token,有效期为60秒,ACL为空
19    stsObj, err := stsClient.GetSessionToken(60, "")
20    if err != nil {
21        fmt.Println("get session token failed:", err)
22        return
23    }
24    fmt.Println("GetSessionToken result:")
25    fmt.Println("  accessKeyId:", stsObj.AccessKeyId)
26    fmt.Println("  secretAccessKey:", stsObj.SecretAccessKey)
27    fmt.Println("  sessionToken:", stsObj.SessionToken)
28    fmt.Println("  createTime:", stsObj.CreateTime)
29    fmt.Println("  expiration:", stsObj.Expiration)
30    fmt.Println("  userId:", stsObj.UserId)
31
32    // 使用申请的临时STS创建CFS控制面服务的Client对象,Endpoint使用默认值
33    cfsClient, err := cfs.NewClient(stsObj.AccessKeyId, stsObj.SecretAccessKey, EndPoint)
34    if err != nil {
35        fmt.Println("create cfs client failed:", err)
36        return
37    }
38    stsCredential, err := auth.NewSessionBceCredentials(
39        stsObj.AccessKeyId,
40        stsObj.SecretAccessKey,
41        stsObj.SessionToken)
42    if err != nil {
43        fmt.Println("create sts credential object failed:", err)
44        return
45    }
46    cfsClient.Config.Credentials=stsCredential
47}

注意: 目前使用STS配置CFS Client时,无论对应CFS服务的Endpoint在哪里,STS的Endpoint都需配置为http//sts.bj.baidubce.com。上述代码中创建STS对象时使用此默认值。

配置HTTPS协议访问CFS

CFS支持HTTPS传输协议,您可以通过在创建CFS Client对象时指定的Endpoint中指明HTTPS的方式,在CFS GO SDK中使用HTTPS访问CFS服务:

Plain Text
1import "github.com/baidubce/bce-sdk-go/services/cfs"
2ENDPOINT := "https://cfs.bj.baidubce.com" //指明使用HTTPS协议
3AK, SK := <your-access-key-id>, <your-secret-access-key>
4cfsClient, _ := cfs.NewClient(AK, SK, ENDPOINT)

配置CFS Client

如果用户需要配置CFS Client的一些细节的参数,可以在创建CFS Client对象之后,使用该对象的导出字段Config进行自定义配置,可以为客户端配置代理,最大连接数等参数。

使用代理

下面一段代码可以让客户端使用代理访问CFS服务:

Plain Text
1import "github.com/baidubce/bce-sdk-go/services/cfs"
2//创建CFS Client对象
3AK, SK := <your-access-key-id>, <your-secret-access-key>
4ENDPOINT := "cfs.bj.baidubce.com"
5client, _ := cfs.NewClient(AK, SK, ENDPOINT)
6
7//代理使用本地的8080端口
8client.Config.ProxyUrl = "127.0.0.1:8080"

设置网络参数

用户可以通过如下的示例代码进行网络参数的设置:

Plain Text
1import "github.com/baidubce/bce-sdk-go/services/cfs"
2AK, SK := <your-access-key-id>, <your-secret-access-key>
3ENDPOINT := "cfs.bj.baidubce.com"
4client, _ := cfs.NewClient(AK, SK, ENDPOINT)
5
6// 配置不进行重试,默认为Back Off重试
7client.Config.Retry=bce.NewNoRetryPolicy()
8
9// 配置连接超时时间为30秒
10client.Config.ConnectionTimeoutInMillis=30*1000

配置生成签名字符串选项

Plain Text
1import "github.com/baidubce/bce-sdk-go/services/cfs"
2AK, SK := <your-access-key-id>, <your-secret-access-key>
3ENDPOINT := "cfs.bj.baidubce.com"
4client, _ := cfs.NewClient(AK, SK, ENDPOINT)
5
6// 配置签名使用的HTTP请求头为`Host`
7headersToSign := map[string]struct{}{"Host": struct{}{}}
8client.Config.SignOption.HeadersToSign = HeadersToSign
9// 配置签名的有效期为30秒
10client.Config.SignOption.ExpireSeconds=30

参数说明 用户使用GO SDK访问CFS时,创建的CFS Client对象的Config字段支持的所有参数如下表所示:

配置项名称 类型 含义
Endpoint string 请求服务的域名
ProxyUrl string 客户端请求的代理地址
Region string 请求资源的区域
UserAgent string 用户名称,HTTP请求的User-Agent头
Credentials *auth.BceCredentials 请求的鉴权对象,分为普通AK/SK与STS两种
SignOption *auth.SignOptions 认证字符串签名选项
Retry RetryPolicy 连接重试策略
ConnectionTimeoutInMillis int 连接超时时间,单位毫秒,默认20分钟

说明:

  1. Credentials字段使用auth.NewBceCredentials与auth.NewSessionBceCredentials函数创建,默认使用前者,后者为使用STS鉴权时使用,详见“使用STS创建CFS Client”小节。
  2. SignOption字段为生成签名字符串时的选项,详见下表说明:
名称 类型 含义
HeadersToSign map[string]struct{} 生成签名字符串时使用的HTTP头
Timestamp int64 生成的签名字符串中使用的时间戳,默认使用请求发送时的值

其中,HeadersToSign默认为Host,Content-Type,Content-Length,Content-MD5;TimeStamp一般为零值,表示使用调用生成认证字符串时的时间戳,用户一般不应该明确指定该字段的值;ExpireSeconds默认为1800秒即30分钟。

  1. Retry字段指定重试策略,目前支持两种:NoRetryPolicy和BackOffRetryPolicy。默认使用后者,该重试策略是指定最大重试次数、最长重试时间和重试基数,按照重试基数乘以2的指数级增长的方式进行重试,直到达到最大重试次数或者最长重试时间为止。

上一篇
概述
下一篇
文件系统