【问题标题】:Video streaming with object storage bucket使用对象存储桶的视频流
【发布时间】:2023-02-14 09:37:11
【问题描述】:

我们将视频存储在对象存储 (aws s3/oci os) 中,并使用对象 uri,我们能够从 HTML 视频播放器播放视频。但是如果我们将存储桶访问设置为私有,那么可能的方法是使用预验证的 url 或使用对象存储 sdk api 来获取视频对象的输入流,在 webflux 中使用带有 ResourceRegion 的数据缓冲区流式传输数据(我们可以处理所有身份验证内容以访问私有存储桶数据)。

我的问题是有没有更好的方法来访问私人存储桶视频(内容交付和流媒体)?我们能否直接向客户端提供代理 url 而不是视频对象 uri,因为我可以处理此 url 上的一些身份验证和授权内容,并将隐藏实际的视频对象 uri,以便我们可以防止从任何第三方应用程序下载视频。

请就此提出建议。

【问题讨论】:

    标签: spring spring-boot amazon-s3 spring-security spring-webflux


    【解决方案1】:

    是的,有办法。一种方法是让代理服务器路由外部 HTTP 调用。但这将只有有限的功能。另一种选择是让自定义编写的微服务通过具有额外自定义业务逻辑的 HTTP 端点从私有/公共存储桶流式传输数据。

    您可以参考此示例 Spring Boot 微服务代码来流式传输来自 OCI 对象存储的内容。

    https://github.com/oracle-devrel/oci-sdk-java-samples/tree/main/usecases/storage-file-streaming

    【讨论】:

      【解决方案2】:

      您可以从您的 s3 存储中生成一个 new access key and secret,创建一个您选择的小型/简单的 service/api with node or any language,并且每次您的应用程序需要视频的 url 时,它可以向服务发送请求以获取新的 url,这可以有一个到期时间。 此外,在您的 api 中,您可以确保只有您的应用可以访问新 url 的请求。

      但是,如果您的意思是只希望您的浏览器或您的客户端成为唯一可以访问视频的浏览器,那么这可能很困难。从上面,您可以控制谁可以访问 url,url 有效多长时间以及谁可以调用 api。第三方必须绕过你的限制做很多事情

      【讨论】:

        猜你喜欢
        • 2021-02-12
        • 1970-01-01
        • 2019-12-10
        • 1970-01-01
        • 2016-10-18
        • 2020-11-10
        • 2017-05-29
        • 1970-01-01
        相关资源
        最近更新 更多