【问题标题】:Protecting video on my site?保护我网站上的视频?
【发布时间】:2010-09-29 20:16:41
【问题描述】:

我想在 s3 上主持一个视频。我想将它“嵌入”到我网站的页面中,例如:

http://example.com/demo.html
   <video>the video</video>

我不确定如何嵌入视频播放器并将其指向托管在 s3 的 url,我只使用了 youtube api 播放器,但这可能是可能的。

我想知道的问题是,一旦人们知道视频资源的网址是什么,是否有办法阻止他们观看视频?例如,如果我在网页上找到一张图片的 url,我可以复制它的 url 并直接在浏览器中查看。有没有办法阻止它?我希望人们仅在从该特定页面查看视频时才能看到该视频。更大的计划是仅向在我的网站上创建帐户的成员显示视频。 vimeo api 看起来很有前途,但仅用于非商业用途,所以看看 s3 是否可行,

谢谢

【问题讨论】:

    标签: video e-commerce amazon-s3


    【解决方案1】:

    您可以使用 Bucket Policies 功能来保护文件不被窃取。

    这是一个允许您防止盗链的存储桶策略示例:

    { 
            "Version":"2008-10-17", 
            "Id":"preventHotLinking",
    
            "Statement":[ { 
    
                "Sid":"1", 
                "Effect":"Allow",
                "Principal": {
                    "AWS":"*"
                },
    
                "Action":"s3:GetObject",
                "Resource":"arn:aws:s3:::your.bucket.name/*",
    
                "Condition":{
    
                    "StringLike": { 
    
                        "aws:Referer": [
                            "http://yourwebsitename.com/*", 
                            "http://www.yourwebsitename.com/*"
                        ]
                    }
                }
            }]
    }
    

    但不要忘记将 your.bucket.name 替换为您的实际存储桶名称,并将 yourwebsitename 替换为您的网站名称。

    您可以使用S3 Browser 免费软件查看和编辑存储桶策略。您可以找到更多存储桶策略示例here.

    【讨论】:

      【解决方案2】:

      这有点像猫捉老鼠的游戏,有一个 Firefox 扩展程序:"DownloadHelper",它可以从大多数嵌入式源中抓取视频。如果重要的是人们无法拍摄视频并随心所欲,您可能需要研究某种方式的 DRM,但这也不是万无一失的,在这种情况下可能会矫枉过正。

      【讨论】:

      • 嗯,但是当用户建立 http 连接以获取视频内容时,我不能检查是否为该用户启用了会话(浏览器会在与服务器建立的每个连接中发送它正确的?)。如果我没有看到会话,我只是拒绝?
      • 对,但这是一个 Firefox 扩展。浏览器(正在运行“抓取器”)具有有效会话并正在抓取视频。 AFAIK“下载助手”看起来与网站的浏览器相同。
      • 啊,没看错,这是有道理的。很高兴知道,谢谢。
      【解决方案3】:

      如果您拥有服务器,则可以执行以下操作,例如在仅暂时有效的 URL 上提供视频(HTTP 会话到期或 5 分钟后等)。但是,由于您在 S3 上发球,而您对它的控制为零,因此这种技术不可用。除此之外,S3 URL 是一个很好的老式 URL,如果视频播放器可以访问它,那么它也可以通过任何其他方式访问...

      【讨论】:

      • 另外,您究竟为什么要阻止人们下载它?为什么你担心他们会(超越狂妄自大)?
      • 哦,这只是付费内容。因此,一位朋友正在生成一些视频,并且不希望他们被观看,除非用户付费观看。
      • 如果它是付费内容,那么也许他们可以负担得起将其托管在您控制比 S3 更密切的服务器上?但除此之外,对于我能想象到的大众开发的任何东西来说,付费视频都是一种相当罕见的模式......
      【解决方案4】:

      我没有使用过 s3,所以我不知道具体细节,但我要做的是有一个客户端 Silverlight/Flash 播放器,它可以从引用视频文件的 URL 流式传输(如果你想使用 Silverlight,请查看 MediaPlayer 元素),然后它应该连接到您的网络服务器上的通用处理程序,该处理程序将从 s3 提供内容,就好像它实际上具有内容一样。一旦你完成了这项工作,你可以将处理程序与你当前的安全性(会话等)集成,以检查它们是否已登录。 通用处理程序是一个 ASHX 文件,用非常灵活的 .NET 编写。最近我需要跟踪图像的带宽使用情况——我编写了一个处理程序,它将添加到 SQL 数据库中的计数器,然后通过设置内容类型来提供图像。所以用户会加载 http:www.mydomain.com/pichandler.ashx?file=grrr.jpg 并且它会生成一个图像,就好像他们直接进入图像一样。

      附言我正在谈论的解决方案需要了解 .NET - 我不知道您将使用哪种语言。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-12-13
        • 1970-01-01
        • 1970-01-01
        • 2014-05-09
        • 1970-01-01
        相关资源
        最近更新 更多