有奖捉虫:行业应用 & 管理与支持文档专题 HOT

概念介绍

智能媒资托管是一项基于 对象存储(Cloud Object Storage,COS)数据万象(Cloud Infinite,CI) 的多媒体及文件资源托管服务,可以让您的产品和服务更便捷地使用云存储能力。在使用智能媒资托管服务之前,建议您先了解与本服务有关的一些概念。

媒体库

媒体库是智能媒资托管中最大的一级单元划分,每一个媒体库完全独立。目前智能媒资托管支持创建媒体类型媒体库及文件类型媒体库。媒体类型媒体库将模拟相册的概念,文件型媒体库将模拟硬盘的概念。

仅在创建、删除和修改媒体库的部分设置时需要使用腾讯云账户登录控制台操作,其他操作均使用智能媒资托管的认证与鉴权,通过调用 API 来实现,不再要求拥有和使用腾讯云账户登录。

媒体库 ID

即 LibraryId,用来唯一标识一个媒体库,在创建媒体库时自动生成,调用所有 API 时均需要指定媒体库 ID。

媒体库密钥

即 LibrarySecret,在调用与访问令牌(有关访问令牌的概念,请参阅下文 访问令牌 )有关的接口时需要指定该参数,用来验证调用者的合法性,在创建媒体库时自动生成。该参数需保密,不能在客户端保存和使用,只能在服务端保存和使用。

租户空间

您的产品和服务可能需要动态创建一些隔离的存储空间,例如独立的栏目或文章,或为产品的每个最终用户,此时可以通过创建“多租户模式”的媒体库来满足需要。在多租户媒体库中,可以通过 API 动态的创建、删除和修改这些隔离的租户空间,在对这些租户空间进行文件管理时,既可以使用与租户空间对应的访问令牌,也可以使用不限制租户空间的高权限访问令牌,满足不同的管理需要。

在创建媒体库时可选择是否启用多租户模式,媒体库创建完成后无法修改该属性。如果未开启则为单租户模式,此时可以理解整个媒体库即为一个租户空间。

相簿

在创建媒体库(单租户)或通过 API 创建租户空间(多租户)时,可以指定是否开启多相簿模式,如果开启多相簿,则需要先创建相簿,照片和视频等媒体资源只能上传到相簿中而不允许直接上传到租户空间中,且相簿不支持多级,即相簿中不能再创建子相簿。如果不开启多相簿,则不允许创建相簿,媒体资源只能直接上传到租户空间中。

是否启用多相簿仅能在创建媒体库或租户空间时设置,创建完成后无法修改。同一租户空间中的相簿名称不能重复。

访问令牌

通过在服务端调用生成访问令牌 API 生成,在生成时需指定媒体库 ID 和媒体库密钥,由于媒体库密钥需要保密,不能在客户端保存和使用,故不允许在客户端调用生成访问令牌 API。

除了操作媒体库和调用与访问令牌本身相关的 API,或媒体库、租户空间设置为公有读时调用读接口,其他情况必须传入访问令牌用来验证访问的合法性。

在生成访问令牌时需要指定所授予的权限,同时也可以指定其他参数,有关生成访问令牌的详细说明,请参阅 生成访问令牌

用户身份识别

智能媒资托管没有用户的概念,也不托管您产品和服务的用户信息,但是在使用访问令牌调用相关 API 时,您可能希望能够记录和识别相关操作的操作者是谁,例如相簿的创建者和媒体资源的上传者等,因此您可以在生成访问令牌时传入用户身份识别,该用户身份识别可以是您产品和服务中已有用户体系的 ID 或用户名,也可以是微信小程序等的 openid,在您需要时您可以自行据此进行进一步的操作。

如果生成访问令牌时申请管理员权限且未指定用户身份识别,在使用访问令牌调用其他 API 时可临时指定一个用户身份识别,以便您在服务端以特定用户身份调用 API 而无需重复生成访问令牌。

客户端识别

如果您的产品和服务允许用户多端同时登录,那么用户可能有管理其他端登录状态的需求,以便其他设备遗失时避免身份被冒用,此时您的产品和服务后端需要记录用户所有登录的客户端的设备名(或其他设备标识),以方便用户识别具体的设备并删除遗失设备的登录状态。智能媒资托管也允许您在生成访问令牌时指定客户端识别,在用户需要删除指定客户端的登录状态时,可以据此删除对应的访问令牌,保护用户的身份和数据。

业务架构设计

智能媒资托管服务在设计时即考虑同时支持服务端和客户端发起请求,除了在请求中需要使用媒体库密钥的接口,其他接口均可以安全的在客户端直接调用,提高了请求的效率。此外,智能媒资托管服务侧重文件系统的元数据管理,具体的文件数据均托管在对象存储上,因此智能媒资托管服务提供的接口主要是控制流和元数据流,而数据流则是直接到达对象存储,这保证了客户端在传输数据时,可以充分享受到对象存储在数据传输上的优势。
下面介绍一种典型的业务架构设计:



如上图所示,在文件上传阶段,客户端会分别向业务后端、智能媒资托管和对象存储发起多次请求,但只有向对象存储后端发起请求时涉及到数据流,其他请求均为控制流,避免数据流进入业务后端可显著降低业务后端的带宽、处理及费用压力,且由于对象存储的高带宽低延时特性,整体性能上反而会更优。

上图仅列举了部分简单场景,您可以根据您产品和服务的需求自由组合智能媒资托管服务提供的接口,如果您碰到智能媒资托管无法满足的需求场景,也可以联系 在线客服 提交需求,我们将尽快评估您的需求。

请求域名

如果您在小程序中使用智能媒资托管服务,那么您需要将相关域名添加至域名白名单:
https://api.tencentsmh.cn
智能媒资托管 API 域名,添加为 request 合法域名。
https://<BucketName-APPID>.cos.<Region>.myqcloud.com
对象存储域名,用于上传和下载文件,添加为 uploadFile 和 downloadFile 域名。如果您的小程序存在通过 wx.request 请求文件的需求,也需要将该域名添加为 request 合法域名。
BucketName、APPID 和 Region 即创建媒体库时绑定的存储桶信息,可在对象存储控制台中查看,例如 https://cloud-album-1250000000.cos.ap-beijing.myqcloud.com