对象存储

上传与下载

最近更新时间:2024-09-20 17:30:21

我的收藏

COS 如何上传对象?

对象存储可以通过如下方式上传对象:
1. 通过 对象存储控制台,在存储桶的文件列表页面上传对象,详细操作可参考文档 上传对象
2. 通过 COS 提供的工具进行上传,COS 工具可参考 对象存储工具概览
3. 通过 API 或 SDK 的 PUT Object 接口进行上传。已经支持的 SDK 语言请参考 SDK概览

COS 上传文件后无法访问,怎么办?

若对象存储上传文件后无法访问,建议您参考以下步骤进行排查:

步骤一:使用COS诊断工具进行判断

COS 自助诊断工具 可以根据您输入的RequestId进行自动检测并给出诊断提示和帮助指引。获取RequestId可参考 获取 RequestId 操作指引

步骤二:检查访问权限配置

1. 上传文件时如果没有指定公有读私有写访问权限,则文件的访问权限默认继承存储桶的访问权限。例如存储桶访问权限为私有读写,则文件的访问权限同样为私有读写。可在文件列表的 文件详情 查看对象权限。
2. 访问私有读写的文件需要携带 有效签名,如不携带有效签名直接访问对象地址,将会报错 AccessDenied。
未携带签名的对象地址格式为:https://<BucketName-APPID>.cos.<Region>.myqcloud.com/<ObjectKey>
携带签名的对象地址格式为 https://<BucketName-APPID>.cos.<Region>.myqcloud.com/<ObjectKey>?q-sign-algorithm=sha1&q-ak=AKXXX&q-sign-time=1704855332;1704858932&q-key-time=1704855332;1704858932&q-header-list=host&q-url-param-list=&q-signature=XXX&x-cos-security-token=XXX。
3. 访问“公有读私有写”的文件无需携带签名即可直接访问对象,这种场景下任何用户都可以通过对象 URL 直接下载对象,而不经过任何身份认证。但需注意,将资源开放为公有读具有安全风险,资源链接一旦泄露,任何人均可访问,可能被恶意用户盗刷流量。更多介绍请参见 COS授权与身份认证流程

步骤三:检查域名配置

1. 如果使用自定义域名访问对象存储,可能存在域名解析问题,需要确保域名解析正确。报错提示为UserCnameInvalid,请检查DNS解析是否正确或是否生效(一般不超过48小时生效)。如果使用 COS 托管静态网站,COS配置时请选择静态网站源站,相关指引文档请参见 开启自定义源站域名
2. 如果使用全球加速域名访问报错 DNS 解析临时异常,建议用户使用 内网全球加速域名

步骤四:检查防盗链配置

如果报错You are denied by bucket referer rule,则表示您的访问中 referer 参数和防盗链中设置的不一致。可以关闭防盗链或者您的请求中携带referer参数。操作指引请参见 设置防盗链

步骤五:检查第三方存储组件中的COS配置

如果您使用的是第三方存储组件(例如 PicGo)与 COS 进行集成,请检查 COS 配置是否有误。具体请参考 在第三方应用中使用COS

步骤六:检查其他项

1. 上传到 COS 的视频播放异常请参考 访问视频时无法正常播放
2. 如果账号已经欠费,会导致图片等文件无法打开。
3. 有时文件上传可能不完整,导致无法访问。请确保文件完整上传到了对象存储。

COS 如何下载对象?

详情请参见 下载对象

COS 对上传和下载带宽是否有限制?

中国大陆公有云地域单账号默认带宽:上行和下行各自为15Gbit/s;其他地域单账号默认带宽:上行和下行各自为10Gbit/s。如果带宽达到该阈值,请求会触发流控。如果有更高带宽需求,请联系 售后工程师

如何使文件直接在浏览器中预览,而不是下载?

第一步:配置自定义域名
2024年1月1日后创建的存储桶,若您使用默认域名(包括存储桶默认域名、静态网站域名、全球加速域名)访问文件,任意类型文件不支持预览而是直接下载,详见 COS存储桶域名使用安全管理通知若您希望通过浏览器直接预览文件或下载存储桶内的apk、ipa类型对象,请通过自定义域名访问对象。
第二步:配置正确的 Content-Type 和 Content-Disposition 头部
确保您在请求 COS 文件时已正确配置 Content-Type 头部,并且文件的 Content-Disposition 头部的参数值设置为inline(表示浏览器应该尝试打开内容),当浏览器支持打开当前文件的格式时,浏览器会直接打开该文件,而不是直接下载。配置头部参数的操作指引请参见 自定义 Headers

如何使文件直接在浏览器中下载,而不是预览?

您可以通过 对象存储控制台 将对象自定义 Headers 中的 Content-Disposition 参数值设为 attachment(表示浏览器应该提示用户下载内容)。操作指引请参见 自定义 Headers
也可以通过设置 GET Object 接口中请求参数 response-content-disposition 的值为 attachment 来实现浏览器中弹出下载文件。参考文档请参见 GET Object
注意:
请求中要使用 response-* 参数,则请求必须带签名。

如何判断您是否通过内网访问 COS?

腾讯云对象存储 COS 的访问域名使用了智能 DNS 解析,通过互联网在不同的运营商环境下,我们会检测并指向最优链路供您访问 COS。
如果您在腾讯云内部署 CVM 服务用于内网访问 COS,那么首先需确保 CVM 与 COS 存储桶的所属地域相同,然后通过在 CVM 上使用nslookup命令解析 COS 域名,若返回内网 IP,则表明 CVM 和 COS 之间是内网访问,否则为外网访问。
注意:
如果您通过 CVM 访问 COS 服务,请使用默认的腾讯云内网 DNS 地址进行内网访问,尽量不要修改 CVM 的 DNS 服务配置,以免内网解析失效导致无法连接到 COS。
如果您在腾讯云内部署的 CVM 服务,其地域与 COS 存储桶的所属地域不同,但属于 COS 可用地域范围,可通过 COS 内网全球加速域名访问文件,实现 CVM 与 COS 的跨地域内网访问。通过内网全球加速域名实现跨地域内网访问会产生额外的费用,详情请参见 内网全球加速
内网访问判断方法
相同地域内腾讯云产品访问,可实现内网连接,产生的内网流量不计费。因此选购腾讯云不同产品时,建议尽量选择相同地域,减少您的费用。
注意:
公有云地域和金融云地域内网不互通。
确认是否内网访问请参考如下方法:
以腾讯云服务器(Cloud Virtual Machine,CVM)访问对象存储(Cloud Object Storage,COS)为例,判断是否使用内网访问 COS ,可以在 CVM 上 使用 nslookup 命令解析 COS 域名,若返回内网 IP,则表明 CVM 和 COS 之间是内网访问,否则为外网访问。
说明:
内网 IP 地址一般形如 10.*.*.*100.*.*.* ,VPC 网络一般为 169.254.*.* 等,这两种形式的 IP 都属于内网。
假设 examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com 为目标存储桶地址,执行nslookup命令后可以看到以下信息:
nslookup examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com

Server: 10.138.224.65
Address: 10.138.224.65 #53

Name: examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com
Address: 10.148.214.13
Name: examplebucket-1250000000.cos.ap-guangzhou.myqcloud.com
Address: 10.148.214.14
其中10.148.214.1310.148.214.14这两个 IP 就代表了是通过内网访问的 COS。
更多内网与外网访问,连通性测试等信息,请参见 内网与外网访问
腾讯云 CVM 内网 DNS 服务器地址,请参见 云服务器内网服务
注意:
腾讯云黑石机器内网 IP 地址和 CVM 的 IP 地址存在差异,一般形如 9.*.*.*10.*.*.*,如您存在疑问可 联系我们

如何下载文件夹?

您可登录 COSBrowser 工具,选中需要下载的文件夹,单击下载进行文件夹或批量文件下载。或通过 COSCMD、COSCLI 工具实现下载文件夹,详情请参见 COSCMD 工具COSCLI 工具

进行上传下载等操作时,报错“403 Forbidden”、权限拒绝等该如何处理?

请参阅 访问 COS 时返回403错误码 文档进行故障处理。

COS 如何实现批量上传或批量下载文件?

COS 支持通过控制台、API/SDK、工具等多种方式批量上传或批量下载文件:
控制台方式:操作步骤可参见 上传对象下载对象
API/SDK 方式:COS 支持通过编程多次调用 API 或 SDK 接口的方式批量操作文件,详情可参见 上传/下载对象 API 接口和 SDK 概览
工具方式:可使用 COSBrowserCOSCMDCOSCLI 等工具实现批量操作。

上传文件至存储桶,已存在同名文件,是直接覆盖还是新增不同版本的文件?

COS 现已支持版本控制功能,当存储桶未启用版本控制功能,上传相同名称的文件至存储桶,会直接覆盖已存在的同名文件。当存储桶启用了版本控制功能,上传相同名称的文件至存储桶,会同时存在该对象的多个版本。

COS 分块上传方式,最小分块大小是多少呢?

每块最小1MB。详情请参见 规格与限制 文档。

大文件分块上传过程中,签名失效后是否可以换签名继续上传分块?

可以。

如何对 COS 中的文件生成一个临时 URL?

具体操作请参见 预签名授权下载

指定了签名有效时长,为什么签名过期后仍然可以下载文件?

默认情况下,浏览器会缓存成功加载过的文件,因此在使用相同 URL 时,浏览器将返回缓存结果而不会重新请求服务器。建议用户在上传文件时,通过指定 Cache-Control: no-cache 头部来阻止浏览器缓存,可参见 PUT ObjectInitiate Multipart Upload 文档进一步了解;也可以在下载文件时,通过指定 response-cache-control=no-cache 请求参数来阻止浏览器缓存,可参见 GET Object 文档进一步了解。

在控制台上传文件,提示“上传失败,网络开了个小差”该怎么办?

出现该错误是由于本地网络环境不稳定,建议更换网络环境后,再进行上传。

如何防止其他人下载 COS 文件?

可以将存储桶设置为私有读写,详情请参见 设置访问权限 文档;也可以通过防盗链设置白名单限制限制名单外的域名访问存储桶的默认访问地址,详情请参见 防盗链设置 文档。

文件的下载 URL 可以设置不区分英文大小写吗?

COS 不支持该操作。COS 文件名区分英文大小写,通过 URL 访问文件同样需要区分英文大小写。若您的存储桶开启了 CDN 加速功能,可通过 CDN 控制台开启忽略大小写缓存配置,一定程度上提升命中率。详情请参见 忽略大小写缓存配置

进行上传文件或创建存储桶等操作时,报错“your policy or acl has reached the limit (Status Code: 400; Error Code: PolicyFull)”该如何处理?

COS 每个主账号下存储桶 ACL 的规则数量最多为1000条,当设置的存储桶 ACL 大于1000条时,会出现此报错,因此建议删除无用的存储桶 ACL 规则。
说明:
我们不建议使用对象级别的 ACL 或 Policy。建议您在调用 API 或 SDK 时,若不需要对文件进行特别的 ACL 控制时, 请将 ACL 相关参数(如 x-cos-acl、ACL 等)置空,保持继承存储桶权限。

为什么不支持使用默认域名下载apk/ipa文件?

为保证整体服务的安全性和稳定性,自2024年1月1日起,新创建的存储桶不支持使用存储桶默认域名(包括存储桶域名、静态网站域名、全球加速域名)下载apk/ipa文件。详情请参见 COS 存储桶域名使用安全管理通知(2024年1月施行)文档。

为什么不支持使用默认域名预览文件?

为保证整体服务的安全性和稳定性,自2024年1月1日起,新创建的存储桶不支持使用存储桶默认域名(包括存储桶域名、静态网站域名、全球加速域名)在浏览器预览文件。参考文档请参见 COS 存储桶域名使用安全管理通知(2024年1月施行)文档。