腾讯云 COS 对象存储完整教程:从入门到生产环境
COS(Cloud Object Storage) 是腾讯云的对象存储服务,与 AWS S3、阿里云 OSS 类似,提供海量数据的存储和管理。本文从创建 Bucket 开始,到配置 CDN 加速、设置生命周期、通过 SDK 上传文件,完整覆盖 COS 的核心用法。
什么是 COS
| 概念 | 说明 | 类比 | |------|------|------| | Bucket(存储桶) | 数据的容器 | 类似"根目录" | | Object(对象) | 存储的文件 | 类似"文件" | | Key(对象键) | 对象的唯一标识 | 类似"文件路径" | | Region(地域) | Bucket 所在数据中心 | 选择离用户最近的 |
第一步:创建 COS Bucket
1. 登录腾讯云控制台 → 对象存储 COS 2. 点击 创建存储桶 3. 选择地域(建议与 CVM 同地域,内网传输免费) 4. 输入 Bucket 名称(全网唯一) 5. 访问权限:私有读写(默认,最安全) 6. 其他保持默认,创建完成
`bash
COSCMD 命令行工具创建 Bucket
pip install coscmd coscmd config -a <SecretId> -s <SecretKey> -b <BucketName> -r <Region>`第二步:获取访问密钥
要使用 COS 的 API 或 SDK,需要获取密钥:
1. 控制台 → 访问管理 CAM → API 密钥管理 2. 创建密钥,获得 SecretId 和 SecretKey 3. 保存好 SecretKey,它只显示一次
> ⚠️ 密钥拥有完全的 COS 权限,绝对不能泄露到公开代码中。
第三步:上传文件
方式一:控制台上传
COS 控制台 → 点击 Bucket → 上传文件 → 直接拖拽文件即可。
方式二:COSCMD 命令行
`bash
安装 COSCMD
pip install coscmd配置
coscmd config -a AKIDxxxx -s xxxx -b my-bucket-1234567890 -r ap-singapore上传文件
coscmd upload local-file.jpg /images/photo.jpg上传整个目录
coscmd upload -r ./website/ /website/查看文件列表
coscmd list /`方式三:Python SDK
`python
from qcloud_cos import CosConfig, CosS3Client
import os
config = CosConfig( Region='ap-singapore', SecretId=os.environ['COS_SECRET_ID'], SecretKey=os.environ['COS_SECRET_KEY'] ) client = CosS3Client(config)
上传文件
response = client.put_object_from_local_file( Bucket='my-bucket-1234567890', LocalFilePath='local-image.jpg', Key='photos/avatar.jpg' ) print(f"ETag: {response['ETag']}")`方式四:Node.js SDK
`javascript
const COS = require('cos-nodejs-sdk-v5');
const cos = new COS({
SecretId: process.env.COS_SECRET_ID,
SecretKey: process.env.COS_SECRET_KEY,
});
cos.putObject({
Bucket: 'my-bucket-1234567890',
Region: 'ap-singapore',
Key: 'uploads/report.pdf',
Body: require('fs').createReadStream('./report.pdf'),
}, (err, data) => {
if (err) console.error(err);
else console.log('Uploaded:', data.Location);
});
`
第四步:生成预签名 URL
对于私有 Bucket,可以通过预签名 URL 临时授权访问:
`python
from qcloud_cos import CosConfig, CosS3Client
client = CosS3Client(config)
生成下载 URL(有效期 3600 秒 = 1 小时)
url = client.get_presigned_download_url( Bucket='my-bucket-1234567890', Key='private/report.pdf', Expired=3600 ) print(url)`> 预签名 URL 非常适合需要临时分享私有文件给特定用户的场景。
第五步:绑定自定义域名
1. COS 控制台 → Bucket → 域名与传输管理 → 自定义源站域名
2. 添加你的域名(如 cdn.yourdomain.com)
3. 在 DNS 服务商添加 CNAME 记录:
`
cdn.yourdomain.com CNAME → <Bucket>.cos.<Region>.myqcloud.com
`
4. SSL 证书:腾讯云提供免费 DV 证书,一键部署
> 绑定自定义域名后,可以通过 https://cdn.yourdomain.com/image.jpg 访问文件,更加专业。
第六步:配置 CDN 加速
1. 进入 Bucket → 域名管理 → 开启 CDN 加速 2. 配置缓存规则: - 图片/JS/CSS → 缓存 7-30 天 - HTML → 缓存 1 小时 - API 响应 → 不缓存 3. 开启 HTTPS、HTTP/2、Gzip 压缩
CDN 加速后,全球加载速度显著提升且 CDN 流量更便宜。
第七步:存储类型与生命周期
存储类型对比
| 存储类型 | 价格(/GB/月) | 最低存储时间 | 适用场景 | |---------|:---:|:---:|------| | 标准存储 | $0.024 | 无限制 | 频繁访问的热数据 | | 低频存储 | $0.014 | 30 天 | 月访问 1-2 次 | | 归档存储 | $0.004 | 90 天 | 季度/年度访问 | | 深度归档存储 | $0.002 | 180 天 | 长期合规存档 |
配置生命周期规则
自动将数据降级为便宜的存储类型:
`json
{
"Rule": [{
"Status": "Enabled",
"Filter": {"Prefix": "logs/"},
"Transition": [
{"Days": 30, "StorageClass": "STANDARD_IA"},
{"Days": 90, "StorageClass": "ARCHIVE"},
{"Days": 365, "StorageClass": "DEEP_ARCHIVE"}
],
"Expiration": {"Days": 730}
}]
}
`
效果:"日志数据 0-30 天热存 → 30 天后转低频 → 90 天后转归档 → 2 年后自动删除"。
第八步:静态网站托管
COS 可以直接托管静态网站(HTML/CSS/JS):
1. Bucket → 基础配置 → 静态网站
2. 开启,设置索引文档为 index.html
3. 设置错误文档为 404.html
4. 设置 Bucket 访问权限为 公有读
> 💡 配合 CDN + 自定义域名 + 免费 SSL,可以低成本搭建全球加速的静态网站。
第九步:成本优化
| 策略 | 节省比例 | 操作 | |------|:---:|------| | 生命周期自动降级 | 30-70% | 自动转低频/归档 | | CDN 回源 COS(内网) | 免回源流量费 | 同 Region | | 清理碎片(未完成上传) | 避免隐藏费用 | 定期检查 | | 启用清单功能 | 发现浪费 | COS 控制台 | | GD 图片压缩(万象) | 按压缩比节省 | 开通数据万象 |
COS vs 自建文件服务器
| 维度 | COS 对象存储 | 自建 NFS/FTP | |------|:---:|:---:| | 可靠性 | 99.999999999%(12 个 9) | 取决于硬件 | | 带宽 | 按需扩展 | 受限于服务器带宽 | | 运维成本 | 零运维 | 需要维护服务器 | | CDN 集成 | 一键配置 | 需要自己搭建 | | 成本 | 按量计费 | 固定月费 |
> 除非有特殊合规需求,否则不推荐自建文件服务器来代替 COS。
常见问题 FAQ
Q:COS 和 CVM 的云硬盘有什么区别? A:云硬盘是块存储,绑定到 CVM 实例,像本地硬盘一样。COS 是对象存储,通过 HTTP API 访问,独立于任何服务器。
Q:Bucket 名称为什么必须全球唯一?
A:COS 的访问域名为 bucket-name.cos.region.myqcloud.com,所以 Bucket 名称在腾讯云全网唯一。
Q:内网访问 COS 免费吗? A:同一 Region 内的 CVM 通过内网访问 COS,流量免费。非常适合做 Web 应用的静态资源存储。
总结
腾讯云 COS 核心要点:
- ✅ 创建 Bucket 后,通过 SDK/COSCMD/控制台上传文件 - ✅ 私有 Bucket + 预签名 URL 实现安全分享 - ✅ 绑定自定义域名 + CDN + SSL,实现专业访问 - ✅ 配置生命周期策略,自动降低存储成本 - ✅ 内网访问免费,与 CVM 同 Region 部署最佳
---
本文由 ChengziCloud 整理。需要云服务技术支持?联系我们 获取方案。