MinIO 用于时间偏移缓冲的扇出功能

MinIO已发展成为媒体和娱乐行业的核心构建模块。我们的客户包括领先的有线电视公司、最大的流媒体公司以及数十家行业上下游的公司,我们在最近几个季度中添加了许多不同的功能。其中一项功能称为扇出功能,它是实施时移缓冲的监管要求(当您将直播电视倒回几秒或几分钟时会发生这种情况)。
具体来说,扇出功能解决了内容分发商的法律版权要求,以确保每个录制单元都映射到存储系统上的一个对象,并且每个单元都需要复制预定的次数。预定的副本数量称为扇出。
这源于2008年美国第二巡回上诉法院之间关于卡通网络和Cablevision的一起案件,该案件最终裁定Cablevision提出的基于云的DVR系统不侵犯版权持有人的权利。法院认为,由于每次回放传输都是使用单个订阅者创建的单个唯一副本发送给单个订阅者的,因此每次回放传输都是私人表演,不侵犯公共表演权。
随着运营商开发了30分钟缓冲功能(您可以自动返回观看过的任何节目的最多30分钟,否则为n分钟,其中n小于30分钟) - 相同的要求也随之而来。
扇出要求的影响可能因服务的规模而异。对于小型服务,扇出要求可能在数百或数千个副本。对于大型的全国性服务,扇出要求可能达到数百万个副本。关键是您必须从传入的源创建副本。您希望单个请求能够潜在调用数万个对象。同时发出数万个请求的网络影响是不可行的。
MinIO在新的API中涵盖了这一点,该API遵循传统的PutObject方法。在这里,不是从单个流写入单个对象,而是写入多个对象,这些对象通过PutObjectFanOutRequest列表定义。每个片段(两秒、两分钟、二十二分钟等)都与一个存储桶列表(带有相应的斜杠前缀)一起进入MinIO,它需要驻留在其中。
要使用MinIO的扇出功能,您首先需要创建一个扇出配置文件。此文件是一个YAML文件,用于指定您要将对象上传到的存储桶。该文件应具有以下格式
PutObjectFanOutRequest
中的每个条目都包含一个对象键名及其相关的元数据(如果有)。
键是必须的,PutObjectFanOutRequest
中的其他选项都是可选的。



扇出API会自动将对象上传到指定的存储桶。对象将使用与原始对象相同的文件名和内容上传。
除了遵守监管/版权要求外,扇出API还可以通过自动执行将对象上传到多个存储桶的过程来节省大量时间。虽然这不是一种冗余方法(有更有效的方法来实现这一点),但它确实确保数据始终在多个位置可用。
MinIO的扇出功能
- 扇出配置文件可以指定任意数量的存储桶。
- 扇出配置文件可以指定每个存储桶的访问密钥和密钥。
- 扇出配置文件可以指定每个存储桶的区域。
- 扇出配置文件可以指定每个存储桶的端点。
- 允许读取特定副本
- 允许删除特定副本
- 允许删除所有副本
- 允许复制特定副本
- 允许列出副本
- 允许存储桶列出扇出对象
目前,扇出功能只能通过API使用,但将在不久的将来在CLI和控制台中可用。需要注意的是,每个节点(或服务器)可以处理的扇出数量取决于其硬件功能。
总结
扇出功能并不特别复杂,但在某些情况下是必需的,MinIO已经涵盖了它,并且可以优雅地解决这个问题。请随时尝试,如果您发现其他用例,请务必发送邮件至 hello@min.io,我们会让大家知道。