`
fighter1945
  • 浏览: 230704 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

用webpy+gae做一个隐藏播放文件地址的东东,失败了

 
阅读更多

 很简单

想把一些mp3文件放到gae上,不过不想被下载,虽然不是什么歌之类的

 

于是选了个html5的播放器

jplayer

 

http://jplayer.org/

 

demo代码 <!DOCTYPE html>

<html lang="en">
    <head>
        
        <!-- Example code to create a simple player using jPlayer 2.1.0 -->
        
        <!-- Skins are defined in CSS. Uncomment the following CSS reference and comment out the one below it to switch skins -->
        
        <!--<link href="http://jplayer.org/latest/skin/blue.monday/jplayer.blue.monday.css" rel="stylesheet" type="text/css" />--> 
        <link href="http://jplayer.org/latest/skin/pink.flag/jplayer.pink.flag.css" rel="stylesheet" type="text/css" />
        
        <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>    
        <script type="text/javascript" src="http://jplayer.org/2.1.0/js/jquery.jplayer.min.js"></script>
        <script type="text/javascript">
            
            $(document).ready(function() {

    $("#jquery_jplayer_1").jPlayer({
        ready: function(event) {
            $(this).jPlayer("setMedia", {
                 <!--mp3: "12.mp3" -->       
                 mp3: "http://www.jplayer.org/audio/mp3/TSP-01-Cro_magnon_man.mp3"
            });
        },
        swfPath: "http://www.jplayer.org/2.1.0/js",
        supplied: "mp3"
    });
});   
              
        </script>
        
    </head>
    <body>
        <div id="jquery_jplayer_1" class="jp-jplayer"></div>
        
        <div id="jp_container_1" class="jp-audio">
            <div class="jp-type-single">
                <div class="jp-gui jp-interface">
                    <ul class="jp-controls">
                        
                        <!-- comment out any of the following <li>s to remove these buttons -->
                        
                        <li><a href="javascript:;" class="jp-play" tabindex="1">play</a></li>
                        <li><a href="javascript:;" class="jp-pause" tabindex="1">pause</a></li>
                        <li><a href="javascript:;" class="jp-stop" tabindex="1">stop</a></li>
                        <li><a href="javascript:;" class="jp-mute" tabindex="1" title="mute">mute</a></li>
                        <li><a href="javascript:;" class="jp-unmute" tabindex="1" title="unmute">unmute</a></li>
                        <li><a href="javascript:;" class="jp-volume-max" tabindex="1" title="max volume">max volume</a></li>
                    </ul>
                    
                    <!-- you can comment out any of the following <div>s too -->
                    
                    <div class="jp-progress">
                        <div class="jp-seek-bar">
                            <div class="jp-play-bar"></div>
                        </div>
                    </div>
                    <div class="jp-volume-bar">
                        <div class="jp-volume-bar-value"></div>
                    </div>
                    <div class="jp-current-time"></div>
                    <div class="jp-duration"></div>                   
                </div>
                <div class="jp-title">
                    <ul>
                        <li>Cro Magnon Man</li>
                    </ul>
                </div>
                <div class="jp-no-solution">
                    <span>Update Required</span>
                    To play the media you will need to either update your browser to a recent version or update your <a href="http://get.adobe.com/flashplayer/" target="_blank">Flash plugin</a>.
                </div>
            </div>
        </div>
        
        
    </body>​

 

 

结果,无论是上述例子中用demo的mp3url,还是用本地的mp3文件,都表现正常

 

一旦用gae

 

就会报上篇文章的错误,chrome的快进功能失效,ff和maxthon3正常(废话,他们是同一个核心)

 

当然 yaml文件里要做类似如下修改

 

 

- url: /audio/(.*\.(mid|midi|mp3|wav))

  static_files: audio/\1

  upload: audio/(.*\.(mid|midi|mp3|wav))

 

 

 

到此为止,我已经失败了,因为即使我把mp3的地址暴露出来都不行的话,还继续研究个啥呢

 

不过还是坚持了一小把,算是为将来留个念头

 

思路

 

在test.html中的mp3地址设置中

 

设置为如下形式

 

mp3: "12.mp3"

 

 

当进入html的时候,js会去请求127.0.0.1:8085/12.mp3的url

 

在code.py中设置

 

    '/(.*\.mp3)' ,       'audio',

 

 

 

在audipclass中设置

 

 

    def GET(self,name):
         client = ''
         client =  web.ctx.env.get('HTTP_REFERER') 
         if (not client  == None ) and  client.endswith('test'):                 
           newurl = 'http://127.0.0.1:8085/audio/' + name    
           logging.info("newurl ::::::" + newurl)
           raise web.redirect(newurl)           
         else :  
           return  'stop download '
 

 

当然,在yaml中,要把audio的文件夹设为static

 

换句话说,这个过程是

表面上test.html发出的请求是127.0.0.1:8085/1.mp3

接受这个请求的是audioc这个class,如果HTTP_REFERER的结尾时test,

则redirect到127.0.0.1:8085/audio/1.mp3上

否则,返回字符 'stop download '

 

这个过程倒是用chrome验证成功了,除了不能快进快退

 

但是ff和maxthon却失败了,用firebug查看的结果,发出127.0.0.1:8085/1.mp3后没有得到相应

哎,莫非ff只能一次性响应不成?

算了,这个周末到此为止

下一步,换个html5播放器试试。

 

 

》》》第二天,成功了,见下一篇,虽然不完美

 

分享到:
评论

相关推荐

    spring+gae+hibernate

    标题“spring+gae+hibernate”所提及的是一个技术集成项目,主要涉及Spring框架、Google App Engine(GAE)和Hibernate三个关键组件。让我们详细探讨这三个技术以及它们的集成。 Spring是一个开源的Java企业级应用...

    spring3+springmvc+jpa2+gae

    标题 "spring3+springmvc+jpa2+gae" 指的是一个集成开发环境,它结合了Spring框架的三个核心组件以及Google App Engine (GAE)。这个项目旨在展示如何在GAE上运行一个基于Spring 3、Spring MVC和JPA 2.0的应用程序。...

    spring+gae

    Spring是一个广泛使用的开源Java框架,提供了依赖注入、面向切面编程和MVC(模型-视图-控制器)等功能,而GAE是Google提供的一个平台即服务(PaaS)解决方案,它允许开发者在Google的基础设施上部署和运行Web应用。...

    IPv6+GAE——内网用户轻松穿越外网.chm

    ipv4一定会被v6代替,这本书可以学到ipv6的知识点,非常推荐!!

    eclipse-jee-helios-SR2-win32 +GAE 8/9

    标签: Eclipse GAE 云计算 标签: Eclipse GAE 云计算 这是云应用开发工具,在网上下载大约需要5个小时以上,如果你的网络不是特别好。 由于文件大小要求,分为9部分 下载以后解压,然后合并即可。 前四个 每个4分 ...

    eclipse-jee-helios-SR2-win32 +GAE 9/9

    标签: Eclipse GAE 云计算 标签: Eclipse GAE 云计算 这是云应用开发工具,在网上下载大约需要5个小时以上,如果你的网络不是特别好。 由于文件大小要求,分为9部分 下载以后解压,然后合并即可。 前四个 每个4分 ...

    eclipse-jee-helios-SR2-win32 +GAE 7/9

    标签: Eclipse GAE 云计算 这是云应用开发工具,在网上下载大约需要5个小时以上,如果你的网络不是特别好。 由于文件大小要求,分为9部分 下载以后解压,然后合并即可。 前四个 每个4分 中间四个每个0分

    eclipse-jee-helios-SR2-win32 +GAE 6/9

    标签: Eclipse GAE 云计算 这是云应用开发工具,在网上下载大约需要5个小时以上,如果你的网络不是特别好。 由于文件大小要求,分为9部分 下载以后解压,然后合并即可。 前四个 每个4分 中间四个每个0分

    eclipse-jee-helios-SR2-win32 +GAE 5/9

    标签: Eclipse GAE 云计算 这是云应用开发工具,在网上下载大约需要5个小时以上,如果你的网络不是特别好。 由于文件大小要求,分为9部分 下载以后解压,然后合并即可。 前四个 每个4分 中间四个每个0分

    eclipse-jee-helios-SR2-win32 +GAE 4/9

    标签: Eclipse GAE 云计算 这是云应用开发工具,在网上下载大约需要5个小时以上,如果你的网络不是特别好。 由于文件大小要求,分为9部分 下载以后解压,然后合并即可。 前四个 每个4分 中间四个每个0分

    使用Blobstore上传文件到gae的Demo

    `create_upload_url()`函数接收一个目标处理程序,当用户完成文件上传后,GAE会将请求转发到这个处理程序。处理程序负责处理上传后的文件元数据,例如文件名、大小等。 4. **处理文件上传** 用户上传文件后,处理...

    基于GAE的Demo

    【基于GAE的Demo】是一个使用Eclipse集成开发环境构建的项目,主要展示了如何在Google App Engine(GAE)平台上整合Struts2、Spring和Tiles框架。GAE是Google提供的一个云计算平台,允许开发者在Google的基础设施上...

    eclipse-jee-helios-SR2-win32 +GAE 1/9

    这是云应用开发工具,在网上下载大约需要5个小时以上,如果你的网络不是特别好。 由于文件大小要求,分为9部分 下载以后解压,然后合并即可。 前四个 每个4分 中间四个每个0分

    eclipse-jee-helios-SR2-win32 +GAE 2/9

    这是云应用开发工具,在网上下载大约需要5个小时以上,如果你的网络不是特别好。 由于文件大小要求,分为9部分 下载以后解压,然后合并即可。 前四个 每个4分 中间四个每个0分

    eclipse-jee-helios-SR2-win32 +GAE 3/9

    这是云应用开发工具,在网上下载大约需要5个小时以上,如果你的网络不是特别好。 由于文件大小要求,分为9部分 下载以后解压,然后合并即可。 前四个 每个4分 中间四个每个0分

    GAE包(以配置好,解压可用)

    标题 "GAE包(以配置好,解压可用)" 提供的信息表明,这是一个已经预配置好的Google App Engine (GAE)开发环境的压缩包。GAE是Google提供的一项平台即服务(PaaS),允许开发者在Google的基础设施上运行自己的Web...

    GAE使用规则

    GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则GAE使用规则

    gae-pytorch-master_pytorch_pytorchgae_GAE_自编码器_gaepytorchmaster_

    【标题】"gae-pytorch-master_pytorch_pytorchgae_GAE_自编码器_gaepytorchmaster_" 提供的信息表明,这是一个使用PyTorch实现的图自编码器(Graph Autoencoder, GAE)项目,其核心是将自编码器的概念应用于图数据。...

    gae_in_pytorch-master_GAE_

    总之,`gae_in_pytorch-master`项目提供了在PyTorch中实现GAE的完整代码,为研究者和开发者提供了一个理解和实践图自动编码器的平台。通过这个项目,你可以深入理解GAE的原理,掌握图神经网络在图结构学习中的应用,...

Global site tag (gtag.js) - Google Analytics