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

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

 
阅读更多

昨天说到失败了

想换一个html5播放器试试

其实

跟播放器根本没有什么关系

但是我还是换了一个播放器,http://kolber.github.com/audiojs/

号称


Mobile Safari (iOS 3+)
Android (2.2+, w/Flash)
Safari (4+)
Chrome (7+)
Firefox (3+, w/ Flash)
Opera (10+, w/ Flash)
IE (6, 7, 8, w/ Flash)




思路跟昨天还是一样的,仍然是判断HTTP_REFERER

但基于浏览器的不同特性,还是决定用jquery

先说结果,稍微掩盖下mp3地址,除非对方查看http请求,单从html代码上是找不到任何mp3地址的,ff和mathon3完美,maxthon2有点显示错位,chrome显示没问题,不能快进


step1 test.html中放一个audio标签,放一个被别人下载也无所谓的mp3,放在static文件夹里就好

<audio src="/static/12.mp3" controls="controls" name ="myaudio" id= "myaudio">
Your browser does not support the audio element.
</audio>

 


step2 再放一个select下拉框,用作控制

<select name="myLesson" id="myLesson">
  <option value="1">第一课</option>
  <option value="2">第二课</option>
  <option value="3">第三课</option>
  <option value="4">第四课</option>
</select>

 

step3,用change和ajax来控制audio标签的源地址

 

从模板里copy的,为了escape这个$符号,全都用$$

 

$$(document).ready(function() { 
var as = audiojs.createAll();
var audio = as[0];
$$("#myLesson").change( function() {
  var lesson = $$("#myLesson option:selected").val()
  alert(lesson)
  $$.ajax({
  url: "url" + lesson,   <!-- 在这里向code.py发起请求-->
  processData: false,
  cache: false,
  success: function(mp3url){
    alert(mp3url)        <!-- 在这里返回的是真正的mp3地址 ,除非对方也用firebug之类查看http请求-->
    $$("#myaudio").attr({ src: mp3url });
    <!--audio.playPause();-->
    audio.load(mp3url);
    audio.play();
  }
});
});
}); 

 step4 codypy

   url 匹配   '/url(\d)' ,       'audio',

 

   audio的class

 

    def GET(self,name):
         client = ''
         client =  web.ctx.env.get('HTTP_REFERER') 
         if (not client  == None ) and  client.endswith('test'):                 
           newurl = '/audio/' + name + '.mp3'   
           logging.info("newurl ::::::" + newurl)
           web.header("Content-Type", "text/plain") 
           return   newurl        
         else :  
           return  'stop download '
 

真实的mp3地址放在audio目录下,把audio下的mp3在yaml里按照上一篇的东东配一下就好

分享到:
评论

相关推荐

    spring3+springmvc+jpa2+gae

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

    spring+gae+hibernate

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

    spring+gae

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    基于GAE的Demo

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

    tomato-Netgear-WNDR4500V1固件

    tomato-Netgear-WNDR4500V1_122--20140901.Hyzoom.RT_AC-32M-AIO-AR-TR-PY-GAE-XUNLEI-NGINX-MYSQL-64K.chk

    gae-django-cms-v1.2.3_cn.zip

    这个压缩包包含了该CMS的源代码和其他必要的文件,用于在GAE上部署和运行一个基于Django框架的网站。 Django是一个强大的、免费的开源Web开发框架,它遵循模型-视图-控制器(MVC)设计模式,用Python语言编写。...

    Surgo-django-on-gae

    同时,你可能还需要一个 `settings.py` 文件,针对 GAE 进行特殊设置,例如使用 GAE 的数据存储服务替代 Django 的默认数据库。 3. **数据库集成**:GAE 提供了自己的数据存储服务(如 Datastore),与 Django 默认...

    gae-pytorch-master_pytorch_pytorchgae_GAE_自编码器_gaepytorchmaster_

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

    使用Blobstore上传文件到gae的Demo

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

    gae_in_pytorch-master_GAE_

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

Global site tag (gtag.js) - Google Analytics