You need to enable JavaScript to run this app.
文档中心
对象存储

对象存储

复制全文
下载 pdf
最佳实践
使用私网连接访问对象存储
复制全文
下载 pdf
使用私网连接访问对象存储
您可以使用私网连接,实现在本地 IDC(Internet Data Center,互联网数据中心)通过专线访问对象存储。本文介绍如何使用私网连接访问对象存储。​
背景信息​
您可以使用 VPN、CEN 或专线连接实现云上 VPC 与 本地 IDC 网络互通,然后使用私网连接的终端节点和终端节点服务建立私有网络 VPC 和对象存储 TOS 的网络连接,最后实现在本地数据中心访问对象存储。​
以下以专线连接为例,展示在本地 IDC 访问对象存储的过程。​
​Image​​
注意事项​
​
类别​
注意事项​
私网连接​
  • 终端节点最大带宽限制为 10Gbps,访问对象存储时,请勿超过该带宽限制。​
  • 关于终端节点的详细介绍,请参见终端节点。​
对象存储​
  • 通过私网连接访问 TOS 默认使用 HTTP 协议和终端节点域名,如果您希望通过 TOS 原有域名访问,或者希望通过私网连接使用 HTTPS 协议访问 TOS,则需要配置私有 DNS 名称。具体操作,请参见通过自定义域名访问对象存储。​
  • 使用私网连接访问对象存储时,无法使用 Bucket 策略的 SourceIP 以及 SourceVpc 条件、 IAM 策略的 SourceIP 以及 SourceVpc 条件。​
私有 DNS​
  • 启用私有 DNS 后,您可以通过私有 DNS 域名访问对象存储,且该域名支持 HTTPS 协议。而终端节点域名仅支持 HTTP 协议。​
  • 私有 DNS 仅会在终端节点所在的 VPC 内添加解析,因此如果您有跨 VPC 访问的需求,需要自行添加解析。​
费用​
使用本方案访问对象存储时,会产生终端节点实例费用和流量处理费用。详细介绍,请参见计费说明。​
​
前提条件​
  • 已使用专线连接、CEN 或 VPN 搭建云上 VPC 和本地 IDC 的连接通道。推荐使用专线连接,具体操作,请参见配置专线连接。​
操作步骤​
  1. 在顶部导航栏,选择目标地域。​
  1. 在左侧导航栏选择私网连接 > 终端节点 。​
  1. 在终端节点页面接口终端节点页签下,单击创建终端节点。​
  1. 在创建终端节点页面,配置如下参数。​
  • ​
    类别​
    参数​
    说明​
    基本信息​
    地域​
    选择终端节点所属的地域。​
    ​
    名称​
    输入终端节点的名称。​
    ​
    类型​
    选择终端节点的类型。本场景选择接口。​
    ​
    描述​
    输入终端节点的描述。​
    ​
    所属项目​
    选择终端节点所属的项目。详细介绍,请参见项目管理。​
    终端节点服务​
    开启跨地域​
    是否允许终端节点跨地域连接终端节点服务。默认关闭。​
    ​
    添加方式​
    选择待关联终端节点服务的添加方式。本场景选择火山引擎服务。​
    ​
    终端节点服务​
    选择对接 TOS 的终端节点服务,已默认创建了 2 个对接 TOS 的终端节点服务,您无需手动创建。可选以下服务,具体说明如下:​
    • com.volces.privatelink.cn-<地域>.tos-s3:遵循 S3 协议的终端节点服务,选择该服务后,必须使用遵循 S3 协议的 SDK 和 API 才能访问 TOS。​
    • com.volces.privatelink.cn-<地域>.tos:遵循 tos 协议的终端节点服务,选择该服务后,必须使用遵循 tos 协议的 SDK 和 API 才能访问 TOS。​
    网络配置​
    IP地址类型​
    终端节点使用的 IP 协议类型。可选 IPv4/IPv6,默认勾选 IPv4。​
    ​
    私有网络​
    选择配置专线连接时使用的私有网络。​
    ​
    可用区及子网​
    选择需要建立连接的终端节点服务可用区和子网。​
    ​
    安全组​
    选择安全组。​
    说明​
    创建私有网络时,系统会为该私有网络自动创建一个默认安全组 Default。关于安全组的详细介绍,请参见安全组概述。​
    高级选项​
    私有DNS名称​
    是否启用私有 DNS 名称,支持以下配置:​
    • 启用:可以使用终端节点服务侧自定义的域名进行访问。​
    • 仅当所选终端节点服务已启用私有 DNS 名称且公网域名验证通过时,终端节点才可以启用 DNS 名称。​
    • 不启用:默认。​
    ​
    标签​
    标签由一个键值对组成,用于资源的分类和搜索。更多关于标签的介绍请参见标签管理。​
    单击添加标签,输入标签键和标签值,为终端节点服务添加标签。​
    ​
  1. 阅读并勾选《产品和服务协议》、《私网连接服务条款》、《私网连接服务等级协议》、《退订说明》、《安全规则》,单击立即购买。​
  1. 单击去控制台,在终端节点页面接口终端节点页签下终端节点域名列,获取目标终端节点的域名。​
  1. 在本地 IDC ping 终端节点域名,如果能 ping 通,说明本地 IDC 和对象存储之间网络连通正常。​
  • 将 Endpoint 修改为终端节点的域名后,您可以使用 API、 SDK 访问对象存储。例如在本地 IDC 使用 GO SDK 列举对象,示例代码如下:​
  • ​
    package main​
    ​
    import (​
    "context"​
    "fmt"​
    ​
    "github.com/volcengine/ve-tos-golang-sdk/v2/tos"​
    )​
    ​
    func checkErr(err error) {​
    if err != nil {​
    if serverErr, ok := err.(*tos.TosServerError); ok {​
    fmt.Println("Error:", serverErr.Error())​
    fmt.Println("Request ID:", serverErr.RequestID)​
    fmt.Println("Response Status Code:", serverErr.StatusCode)​
    fmt.Println("Response Header:", serverErr.Header)​
    fmt.Println("Response Err Code:", serverErr.Code)​
    fmt.Println("Response Err Msg:", serverErr.Message)​
    } else if clientErr, ok := err.(*tos.TosClientError); ok {​
    fmt.Println("Error:", clientErr.Error())​
    fmt.Println("Client Cause Err:", clientErr.Cause.Error())​
    } else {​
    fmt.Println("Error:", err)​
    }​
    panic(err)​
    }​
    }​
    ​
    func main() {​
    var (​
    accessKey = "*** Provide your access key ***"​
    secretKey = "*** Provide your secret key ***"​
    // 填写终端节点域名​
    endpoint = "ep-3rf21wq2bsh6o5zsk2ipt****.tos.cn-beijing.privatelink.volces.com"​
    region = "cn-beijing"​
    // 填写 BucketName​
    bucketName = "*** Provide your bucket name ***"​
    ​
    ctx = context.Background()​
    )​
    // 初始化客户端​
    client, err := tos.NewClientV2(endpoint, tos.WithRegion(region), tos.WithCredentials(tos.NewStaticCredentials(accessKey, secretKey)))​
    checkErr(err)​
    ​
    // 获取 bucket 中最多 10 个对象​
    output, err := client.ListObjectsV2(ctx, &tos.ListObjectsV2Input{​
    Bucket: bucketName,​
    ListObjectsInput: tos.ListObjectsInput{​
    MaxKeys: 10,​
    },​
    })​
    checkErr(err)​
    for _, obj := range output.Contents {​
    // 对象 Key​
    fmt.Println("Object Key:", obj.Key)​
    // 对象最后修改时间​
    fmt.Println("Object LastModified:", obj.LastModified)​
    // 对象 Etag​
    fmt.Println("Object ETag:", obj.ETag)​
    // 对象大小​
    fmt.Println("Object Size:", obj.Size)​
    // 对象 Owner​
    fmt.Println("Object Owner:", obj.Owner)​
    // 对象存储类型​
    fmt.Println("Object StorageClass:", obj.StorageClass)​
    // 对象 CRC64​
    fmt.Println("Object HashCrc64ecma:", obj.HashCrc64ecma)​
    }​
    ​
    }​
    ​
​
最近更新时间:2026.07.30 10:02:53
这个页面对您有帮助吗?
有用
有用
无用
无用