【问题标题】:using ruby/rails to catch out going file request使用 ruby​​/rails 来获取文件请求
【发布时间】:2010-05-10 00:23:51
【问题描述】:

我正在使用一个播放 mp3 的 rails 应用程序。有没有办法用 ruby​​ 捕获对 mp3 文件的请求,重新格式化请求(url),然后传递请求?

我真的只是想保护网址...

【问题讨论】:

    标签: ruby-on-rails ruby connection


    【解决方案1】:

    我不确定我是否完全理解您想要做什么,但不会只是在您的 Routes 文件中捕获路径并将其传递给一个操作(或直接在 Rails 3 的 Routes 文件中执行),这将redirect_to你想要的路径?

    采取 2

    所以要加密你可能想做这样的事情: 在song.rb(模特):

    class Song < ActiveRecord::Base
    
      before_create :create_secret_param
    
      private
      def create_secret_param
        self.secret = rand(100000)
      end
    
    end
    

    这将创建一个秘密参数,您可以使用它来访问它。

    routes.rb

    map.secret_song ':id:secret', :controller => 'songs', :action => 'show', :id => /\d+/, :secret => /\d{5}/
    

    song_controller.rb

    def show
      if param[:secret]
        @song = Song.find param[:id], :conditions => {:secret => params[:secret]}
      elsif # check if is user is ok or whatever
        @song = Song.find param[:id]
        redirect_to secret_song_url(:id => @song.id, :secret => @song.secret)
      end
    end
    

    这应该会为您指明正确的方向,但您必须为您的应用获取正确的详细信息。

    【讨论】:

    • 我在网站上有一个 Flash 播放器。我想捕捉它对歌曲文件的请求(例如,来自亚马逊),重新格式化被请求文件的 url,并允许请求以重新格式化的 url 继续
    • 我想你的方式可能就是我要找的,你能更详细地解释一下吗?我真的只是想加密文件网址
    • 它给了我很多东西。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    • 1970-01-01
    • 2021-11-10
    • 2018-01-09
    • 2012-10-16
    • 1970-01-01
    • 2021-04-01
    相关资源
    最近更新 更多