tencent cloud

对象存储

动态与公告
产品动态
产品公告
产品简介
产品概述
功能概览
应用场景
产品优势
基本概念
地域和访问域名
规格与限制
产品计费
计费概述
计费方式
计费项
免费额度
计费示例
查看和下载账单
欠费说明
常见问题
快速入门
控制台快速入门
COSBrowser 快速入门
用户指南
创建请求
存储桶
对象
数据管理
批量处理
全球加速
监控与告警
运维中心
数据处理
内容审核
智能工具箱
数据工作流
应用集成
工具指南
工具概览
环境安装与配置
COSBrowser 工具
COSCLI 工具
COSCMD 工具
COS Migration 工具
FTP Server 工具
Hadoop 工具
COSDistCp 工具
HDFS TO COS 工具
GooseFS-Lite 工具
在线辅助工具
自助诊断工具
实践教程
概览
访问控制与权限管理
性能优化
使用 AWS S3 SDK 访问 COS
数据容灾备份
域名管理实践
图片处理实践
COS 音视频播放器实践
工作流实践
数据直传
内容审核实践
数据安全
数据校验
大数据实践
COS 成本优化解决方案
在第三方应用中使用 COS
迁移指南
本地数据迁移至 COS
第三方云存储数据迁移至 COS
以 URL 作为源地址的数据迁移至 COS
COS 之间数据迁移
Hadoop 文件系统与 COS 之间的数据迁移
数据湖存储
云原生数据湖
元数据加速
数据加速器 GooseFS
数据处理
数据处理概述
图片处理
媒体处理
内容审核
文件处理
文档处理
故障处理
获取 RequestId 操作指引
通过外网上传文件至 COS 缓慢
访问 COS 时返回403错误码
资源访问异常
POST Object 常见异常
API 文档
简介
公共请求头部
公共响应头部
错误码
请求签名
操作列表
Service 接口
Bucket 接口
Object 接口
批量处理接口
数据处理接口
任务与工作流
内容审核接口
云查毒接口
SDK 文档
SDK 概览
准备工作
Android SDK
C SDK
C++ SDK
.NET(C#) SDK
Flutter SDK
Go SDK
iOS SDK
Java SDK
JavaScript SDK
Node.js SDK
PHP SDK
Python SDK
React Native SDK
小程序 SDK
错误码
鸿蒙(Harmony) SDK
终端 SDK 质量优化
安全与合规
数据容灾
数据安全
访问管理
常见问题
热门问题
一般性问题
计费计量问题
域名合规问题
存储桶配置问题
域名和 CDN 问题
文件操作问题
日志监控问题
权限管理问题
数据处理问题
数据安全问题
预签名 URL 问题
SDK 类问题
工具类问题
API 类问题
服务协议
Service Level Agreement
隐私政策
数据处理和安全协议
联系我们
词汇表

创建请求概述

PDF
聚焦模式
字号
最后更新时间: 2024-11-11 16:11:55

基本概念

腾讯云对象存储 COS 是一个使用 HTTP/HTTPS 协议访问的 Web 存储服务,您可以使用 REST APICOS SDK 来访问 COS。
当您发起访问 COS 请求,需要经过 COS 认证和鉴权后,才可以对资源进行操作。因此根据身份是否可识别,访问 COS 的请求分两种类型:匿名请求和签名请求。
匿名请求:请求未携带 Authorization 或相关参数,又或者相关字符无法识别出用户身份特征,此时请求就会被视为匿名请求而进行鉴权。
签名请求:签名的请求需要在 HTTP 头部或者请求包中包含 Authorization 字段,该字段的内容是结合腾讯云的安全凭证 SecretID、SecretKey 和请求的一些特征值,通过加密算法生成。
如果您使用 COS SDK 访问,只需配置好您的安全凭证即可发起请求。使用 REST API 访问,则需要参见 请求签名 文档自行计算请求签名。

获取安全凭证

腾讯云访问管理(Cloud Access Management,CAM)为对象存储 COS 提供了账号和安全凭证的相关功能和服务,主要用于帮助客户安全管理腾讯云账户下的资源的访问权限。用户可以通过 CAM 创建、管理和销毁用户(组),并使用身份管理和策略管理控制其他用户使用腾讯云资源的权限。

主账号的安全凭证

在登录主账号后,可通过访问管理中的 云 API 密钥 页面管理和获取您的主账号安全凭证 SecretID 和 SecretKey 密钥。以下是一组密钥示例:
36 个字符的访问密钥 ID(SecretID):************************************
32 个字符的访问密钥 Key(SecretKey):********************************
访问密钥可用于标识唯一的账户,使用密钥签名后发送请求,腾讯云将识别请求发起者的身份,并在认证后,对身份、资源、操作、条件等进行鉴权,来判断是否允许执行此操作。
注意:
主账号密钥具备其名下所有资源的所有操作权限,密钥的泄露可能造成您的云上资产损失,强烈建议您创建子账户并分配合理的权限,使用子账户的密钥创建请求来访问和管理资源。

子账号的安全凭证

当您需要在多个维度管理名下的用户和云资源时,您可以在主账号名下创建多个子账号,实现分管人员对资源权限的功能。有关创建子账号的说明请参见访问管理 用户管理 的相关文档。
使用子账号发起 API 请求前,您需要为子账号创建安全凭证,随后子账号也将具备独特的密钥对,以便于识别身份。您可以对不同的子账号编写用户策略,来控制其对资源的访问权限。您也可以创建用户组,并对用户组添加统一的访问策略,便于对人员的分组和资源的统筹管理。
注意:
子账号被分配对应权限后,可以创建或修改资源,此时资源仍然属于主账号,主账号需要支付该资源产生的费用。

临时安全凭证

除了使用主账号或子账号的安全凭证访问资源外,腾讯云还支持通过创建角色,并使用临时安全凭证管理腾讯云资源。有关角色的基本概念和使用方法,请参见访问管理 角色管理 文档。
由于角色是一个虚拟身份,因此角色不具备永久密钥,腾讯云的 CAM 提供了一套 STS API 用于生成临时安全凭证。 使用方法和示例详情请参见 使用角色 文档,或参见 创建角色 文档查看生成临时安全凭证的方式。临时安全凭证通常只包括有限策略(操作、资源、条件)和有限时间(有效起止时间),因此生成的临时安全凭证可自行分发或直接使用。
调用生成临时安全凭证的接口,您将获得一对临时密钥(tmpSecretId/tmpSecretKey)和一个安全令牌(sessionToken),其构成了可用于访问对象存储 COS 的安全凭证,示例如下:
41 个字符的安全令牌(SecurityToken):*****************************************
36 个字符的临时访问密钥 ID(SecretID): ************************************
32 个字符的临时访问密钥 Key(SecretKey): ********************************
该接口还会通过 expiration 字段返回临时安全凭证的有效时间,这意味着您只能在此时间内使用这组安全凭证来发起请求。
腾讯云对象存储 COS 提供了简单的服务端 SDK 可用于生成临时密钥,可访问 COS STS SDK 获取。在得到临时安全凭证后,使用 REST API 发起请求,您需要在 HTTP 头部或 POST 请求包的 form-data 中传入x-cos-security-token字段标识该请求使用的安全令牌,再使用临时访问密钥对来计算请求签名。使用 COS SDK 发起访问请参考各 SDK 文档中的相关部分。

访问域名

REST API

我们在 地域和访问域名 文档中列出了可用于发起 REST API 访问的域名列表。
COS 推荐使用虚拟托管型域名访问存储桶,在发起 HTTP 请求时直接通过Host头部带入需要访问的存储桶,例如 <BucketName-APPID>.cos.<Region>.myqcloud.com。使用虚拟托管型的域名实现了类似虚拟服务器「根目录」的功能,可用于托管类似 favicon.ico、robots.txt、crossdomain.xml 的文件,这些文件是很多应用程序在识别托管网站时,会默认从虚拟服务器「根目录」位置检索的内容。
您也可以使用路径型请求来访问存储桶,例如使用cos.<region>.myqcloud.com/<BucketName-APPID>/的路径来访问存储桶。相应的,请求 Host 和签名需要使用cos.<region>.myqcloud.com,我们的 SDK 默认不支持此种访问方式。

静态网站域名

当您开启存储桶的静态网站功能时,我们将分配一个虚拟托管型的域名供相关功能的使用。静态网站域名的表现与 REST API 有所不同,除了特定的索引页、错误页和跳转配置外,静态网站域名只支持 GET/HEAD/OPTIONS Object 等几种操作,不支持上传或配置资源的操作。
静态网站域名例如:<BucketName-APPID>.cos-website.<Region>.myqcloud.com,您也可以通过控制台的存储桶基础配置 > 静态网站配置模块获取此域名。

内网访问

腾讯云对象存储 COS 的访问域名使用了智能 DNS 解析,通过互联网在不同的运营商环境下,我们会检测并指向最优链路供您访问 COS。
如果您在腾讯云内部署 CVM 服务用于内网访问 COS,那么首先需确保 CVM 与 COS 存储桶的所属地域相同,然后通过在 CVM 上使用nslookup命令解析 COS 域名,若返回内网 IP,则表明 CVM 和 COS 之间是内网访问,否则为外网访问。
如果您在腾讯云内部署的 CVM 服务,其地域与 COS 存储桶的所属地域不同,但属于 COS 可用地域范围,可通过 COS 内网全球加速域名访问文件,实现 CVM 与 COS 的跨地域访问。

内网访问判断方法

相同地域内腾讯云产品访问,可实现内网连接,产生的内网流量不计费。因此选购腾讯云不同产品时,建议尽量选择相同地域,减少您的费用。
注意:
公有云地域和金融云地域内网不互通。
确认是否内网访问请参考如下方法:
以腾讯 CVM 访问 COS 为例,判断是否使用内网访问 COS ,可以在 CVM 上 使用nslookup命令解析 COS 域名,若返回内网 IP,则表明 CVM 和 COS 之间是内网访问,否则为外网访问。
说明:
内网 IP 地址一般形如10.*.*.*100.*.*.* ,VPC 网络一般为169.254.*.* 等,这两种形式的 IP 都属于内网。
假设examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com为目标存储桶地址,执行nslookup命令后可以看到以下信息:



其中10.148.214.1310.148.214.14这两个 IP 就代表了是通过内网访问的 COS。

测试连通性

基本连通测试

COS 使用了 HTTP 协议对外提供服务,您可使用最基本的telnet工具来对 COS 访问域名的80端口发起访问测试。
通过外网访问的示例如下:
telnet examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com 80
Trying 14.119.113.22...
Connected to gz.file.myqcloud.com.
Escape character is '^]'.
通过同地域的腾讯云 CVM (基础网络)访问示例如下:
telnet examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com 80
Trying 10.148.214.14...
Connected to 10.148.214.14.
Escape character is '^]'.
通过同地域的腾讯云 CVM (VPC 网络)访问示例如下:
telnet examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com 80
Trying 169.254.0.47....
Connected to 169.254.0.47.
Escape character is '^]'.
无论处于何种访问环境,命令返回Escape character is '^]'.字段则说明可成功连通。

通过互联网测试的说明

由于通过互联网访问 COS 会经过运营商网络,运营商网络可能禁止您使用 ICMP 协议的pingtraceroute等工具来测试连通性,因此建议使用 TCP 协议的工具来测试连通性。
注意:
通过互联网访问可能受到多种网络环境的影响,如有访问不畅的情况,请排查本地网络链路或联系当地运营商进行反馈。
若您的运营商允许 ICMP 协议,您可以使用pingtraceroutemtr工具来检视您的链路状况。运营商不允许使用 ICMP 协议,您可以使用psping(Windows 环境,请前往微软官网下载)或tcping (跨平台软件)等工具进行时延测试。

通过内网测试的说明

如果您通过同地域的腾讯云 VPC 网络来访问对象存储 COS,则可能无法使用 ICMP 协议的pingtraceroute等工具来测试连通性。建议您使用基本连通测试中的telnet命令进行测试。
您亦可尝试使用pspingtcping等工具直接对访问域名的80端口进行时延测试,请在测试前确保已通过nslookup命令查询并确认访问域名已正确解析至内网地址。

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈