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
隐私政策
数据处理和安全协议
联系我们
词汇表

PUT Object

PDF
聚焦模式
字号
最后更新时间: 2026-03-09 15:19:58

功能描述

PUT Object 接口请求可以将本地的对象(Object)上传至指定存储桶中,该 API 的请求者需要对存储桶有写入权限。若无权限请参见 设置访问权限。如想以网页表单(HTML Form)的形式上传至指定存储桶中,请使用 POST Object


注意事项

PUT Object 接口最大支持上传5GB文件。如需上传大于5GB的文件,请使用 分块上传 的 API 接口。
请求头的 Content-Length 值小于实际请求体(body)中传输的数据长度,COS 仍将成功创建文件,但对象大小只等于 Content-Length 中定义的大小,其他数据将被丢弃。
对象存储中没有文件夹和目录的概念,将对象上传到指定的文件夹或路径,通过/实现。
对象键设置为 doc/picture.png,表示将 picture.png 对象上传到 doc 文件夹。
对象键设置为 doc/,表示创建一个名为 doc 的文件夹。更多说明请参见 文件夹和目录
如果试图添加已存在的同名对象,则新上传的对象将覆盖原来的对象,成功时返回200 OK。若要求不覆盖之前版本,需打开版本控制,详情请参见 版本控制
启用存储桶版本控制 :上传对象时,对象存储将自动为要添加的对象生成唯一的版本 ID,且响应头部在响应中返回 x-cos-version-id 标识。
暂停存储桶版本控制 :上传对象时,对象存储始终将 null 用作在存储桶中的对象版本 ID,且响应头部在响应中不返回 x-cos-version-id 标识。

授权说明

在您进行 授权策略 时,action 需要设置为 cos:PutObject,示例如下。
{
"version": "2.0",
"statement": [
{
"action": [
"name/cos:PutObject"
],
"effect": "allow",
"resource": [
"qcs::cos:ap-beijing:uid/1250000000:examplebucket-1250000000/doc/*"
]
}
]
}
对象存储的更多 action,请参见 支持 CAM 的业务接口

请求

请求语法

PUT /<ObjectKey> HTTP/1.1
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com
Date: GMT Date
Content-Type: Content Type
Content-Length: Content Length
Content-MD5: MD5
Authorization: Auth String

[Object Content]
说明:
Host: <BucketName-APPID>.cos.<Region>.myqcloud.com,其中 <BucketName-APPID> 为带 APPID 后缀的存储桶名字,例如 examplebucket-1250000000,可参见 存储桶概览 > 基本信息存储桶概述 > 存储桶命名规范 文档;<Region> 为 COS 的可用地域,可参见 地域和访问域名 文档。
Authorization: Auth String(详情请参见 请求签名 文档)。

请求参数

此接口无请求参数。

请求头

此接口除使用公共请求头部外,还支持以下请求头部,了解公共请求头部详情请参见 公共请求头部 文档。

常规请求头

名称
描述
类型
是否必选
Cache-Control
RFC 2616 中定义的缓存指令,将作为对象元数据保存。
string
Content-Disposition
RFC 2616中定义的文件名称,将作为对象元数据保存。
例如:
inline:直接预览文件内容。
attachment:以原文件名的形式下载到浏览器指定路径。
attachment; filename="FileName":以自定义文件名的形式下载到浏览器指定路径。FileName 用于自定义下载后的文件名称,例如 example.jpg。
string
Content-Encoding
RFC 2616 中定义的编码格式,将作为对象元数据保存。
string
Content-Type
RFC 2616 中定义的 HTTP 请求内容类型(MIME),此头部用于描述待上传对象的内容类型,将作为对象元数据保存。
例如:application/xml 或 image/jpeg。
string
Expires
RFC 2616中定义的缓存失效时间,是绝对日期和时间,将作为对象元数据保存。
string
Transfer-Encoding
RFC 2616中定义的传输编码格式,如果希望在上传时分块传输,则指定 Transfer-Encoding: chunked 请求头部,不能指定 Content-Length 请求头部。
string

专用请求头

在上传对象时可以通过指定下列请求头部来设置对象的元数据、存储类型、流量控制、标签:
名称
描述
类型
是否必选
x-cos-meta-[自定义后缀]
用户自定义元数据头部。例如 x-cos-meta-test: test metadata
注意:
用户自定义元数据头部固定格式为 x-cos-meta-[自定义后缀],其中自定义后缀支持减号(-)、数字、英文(a~z)。英文字符的大写字母会被转成小写字母,不支持下划线(_)在内的其他字符。
用户自定义元数据头部没有数量限制,单条大小限制2KB,所有 x-cos-meta-[自定义后缀] 头部的总大小不超过4KB。
string
x-cos-storage-class
对象存储类型。默认值:STANDARD。
参考值有:
STANDARD:标准存储
STANDARD_IA:低频存储
ARCHIVE:归档存储
DEEP_ARCHIVE:深度归档存储
MAZ_STANDARD:标准存储(多 AZ)
MAZ_STANDARD_IA:低频存储(多 AZ)
MAZ_ARCHIVE:归档存储(多 AZ)
INTELLIGENT_TIERING:智能分层存储
MAZ_INTELLIGENT_TIERING:智能分层存储(多 AZ)
注意:
部分存储类型仅对特定地域开放,请检查您当前存储桶所属地域是否适用,详情请参见 存储类型概述 文档。如需指定 MAZ 存储类型,需在 创建存储桶 时开启 MAZ 配置。如需指定智能分层存储类型,则需开启 智能分层存储 配置。
enum
x-cos-traffic-limit
针对本次上传进行流量控制的限速值,必须为数字,单位默认为 bit/s。限速值设置范围为819200 - 838860800,即800Kb/s - 800Mb/s,如果超出该范围将返回400错误。
integer
x-cos-tagging
对象的标签集合,最多可设置10个标签(例如,Key1=Value1&Key2=Value2)。标签集合中的 Key 和 Value 必须先进行 URL 编码。
string
x-cos-forbid-overwrite
针对未开启版本控制的存储桶,上传文件时,用于指定上传操作时是否禁止覆盖同名对象:
不携带 x-cos-forbid-overwrite 头部或指定为 false 时,默认覆盖同名 Object;
指定 x-cos-forbid-overwrite 为 true 时,表示禁止覆盖同名 Object。
注意:
当存储桶处于已开启或已暂停的版本控制状态时,x-cos-forbid-overwrite 请求头部设置无效,即允许覆盖同名对象。
string

访问控制列表(ACL)请求头

在上传对象时可以通过指定下列请求头部来设置对象的访问权限:
名称
描述
类型
是否必选
x-cos-acl
定义对象的访问控制列表(ACL)属性。默认为 default。枚举值请参见 ACL 概述 文档中对象的预设 ACL 部分。
参考值有:
default:继承权限
private:私有读写
public-read :公有读私有写
注意:
如果您不需要进行对象 ACL 控制,请设置为 default 或者此项不进行设置,默认继承存储桶权限。
enum
x-cos-grant-read
赋予被授权者读取对象的权限,格式为 id="[OwnerUin]",例如 id="100000000001",可使用半角逗号(,)分隔多组被授权者,例如id="100000000001",id="100000000002"
string
x-cos-grant-read-acp
赋予被授权者读取对象的访问控制列表(ACL)的权限,格式为 id="[OwnerUin]",例如 id="100000000001",可使用半角逗号(,)分隔多组被授权者,例如id="100000000001",id="100000000002"
string
x-cos-grant-write-acp
赋予被授权者写入对象的访问控制列表(ACL)的权限,格式为 id="[OwnerUin]",例如 id="100000000001",可使用半角逗号(,)分隔多组被授权者,例如id="100000000001",id="100000000002"
string
x-cos-grant-full-control
赋予被授权者操作对象的所有权限,格式为 id="[OwnerUin]",例如 id="100000000001",可使用半角逗号(,)分隔多组被授权者,例如id="100000000001",id="100000000002"
string

服务端加密(SSE)请求头

在上传对象时可以通过指定 服务端加密专用头部 来设置服务端加密,不设置默认为不加密。

请求体

此接口请求的请求体为对象(文件)内容。

响应

响应头

此接口除返回公共响应头部外,还返回以下响应头部,了解公共响应头部详情请参见 公共响应头部 文档。

版本控制相关头部

在启用版本控制的存储桶中上传对象,将返回下列响应头部。设置版本控制权限,详情请参见 版本控制
名称
描述
类型
x-cos-version-id
对象的版本 ID
string

服务端加密(SSE)相关头部

如果在上传对象时使用了服务端加密,则此接口将返回服务端加密专用头部,请参见 服务端加密专用头部

响应体

此接口响应体为空。

使用案例

注意:
API explorer 中会将常用且有功能的请求头部作为输入参数使用,使用时请留意。

错误码

此接口遵循统一的错误响应和错误码,详情请参见 错误码 文档。

附录:PUT 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


帮助和支持

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

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

文档反馈