腾讯云对象存储COS自定义Headers
文章目录
最近在项目开发中需要支持存储在COS中的文件下载下来时能支持产品定义的命名规则,而且文件名包含中文,先前开发把文件名重命名后直接存储到COS中,但后来发现带中文链接的文件下载在IPHONE手机或Safira浏览器环境下下载下来文件名是乱码的。这里将介绍通过设置Header来实现指定文件名和文件类型的下载行为,通过这个方法可以实现从COS下载的文件指定特定文件名及文件类型。
说明
归档存储、深度归档存储类型的对象,仅支持在上传时设置自定义 Headers,不支持对已上传的对象设置自定义 Headers。
操作步骤
-
登录 对象存储控制台。
-
在左侧导航栏中,单击存储桶列表,进入存储桶列表页面。
-
找到对象所在的存储桶,单击其存储桶名称,进入存储桶管理页面。
-
在左侧导航栏中,选择文件列表,进入文件列表页面。
-
找到需要自定义头部的对象,在其右侧操作栏中,单击更多 > 自定义头部进行设置。若您需要对多个对象自定义头部,可勾选多个对象,并单击上方的更多操作 > 自定义头部进行设置。
-
在弹出的窗口中,选择需要设置的元数据头部参数类型,输入对应的元数据值,单击确定即可。 COS 提供了以下6种对象 HTTP 头部标识供配置。头部配置说明如下:
HTTP 头部 | 说明 | 示例 |
---|---|---|
Content-Type | 文件的 MIME 信息 | image/jpeg |
Cache-Control | 文件的缓存机制 | no-cache:不可直接使用缓存,而是先到服务端验证 Object 是否已更新。如果 Object 已更新,表明缓存已过期,需从服务端重新下载 Object;如果 Object 未更新,表明缓存未过期,此时将使用本地缓存。max-age=200:缓存内容的相对过期时间,单位为秒。 |
Content-Disposition | MIME 协议的扩展 | attachment; filename=“example.txt”。如果附件名为中文,则需要经过 URL 编码,示例为attachment; filename* = UTF-8' '%E4%B8%AD%E6%96%87.txt |
Content-Encoding | 文件的编码格式 | gzip |
Expires | 用来控制缓存的失效日期 | Wed, 21 Oct 2015 07:28:00 GMT |
x-cos-meta-[自定义后缀] | 用户自定义内容 | x-cos-meta-via: homepage**注意:**头部名称仅支持减号(-)、数字、英文(a~z)。英文字符的大写字母会被转成小写字母,不支持下划线(_)在内的其他字符。 |
示例
在 APPID 为 1250000000,创建存储桶名称为 examplebucket-1250000000。存储桶根目录下上传了对象 exampleobject.txt。
未自定义对象的 HTTP 头部时,浏览器或客户端下载时得到的对象头部范例如下:
请求
|
|
响应
|
|
添加如下配置:
参数 | 值 |
---|---|
Content-Type | image/jpeg |
Cache-Control | no-cache |
Content-Disposition | attachment; filename* = UTF-8’ ‘%E4%B8%AD%E6%96%87.jpeg |
x-cos-meta-md5 | 1234 |
再次发起请求,浏览器或客户端得到的对象头部范例如下:
请求
|
|
响应
|
|
参考文章:
文章作者 HiOFD
上次更新 2024-03-27