Pau*_* S. 5 webserver ruby-on-rails wget
我想建立一个简单的网站,可以下载网页,www.example.com/index.html并在客户端请求时将其快照存储在服务器上.我正在考虑使用该命令wget下载网页.Ruby on Rails能够处理这个任务吗?
Mat*_*sel 12
是.
您可以通过back ticks,exec和system在Ruby中执行shell命令.请注意,每个返回略有不同的东西:
背蜱
wget http://www.yahoo.com
Run Code Online (Sandbox Code Playgroud)exec:
exec('wget http://www.yahoo.com')
Run Code Online (Sandbox Code Playgroud)system:
system('wget http://www.yahoo.com')
Run Code Online (Sandbox Code Playgroud)这篇博文似乎与你想要做的事情一脉相承.
此外,有几个非常棒的Ruby库用于执行此操作:
它们将提供更好的更清晰的Ruby接口,用于处理从各种请求返回的数据.
测试所有这些选项的最佳方法是使用Rails控制台.转到Rails应用程序的根目录并键入:
rails c
Run Code Online (Sandbox Code Playgroud)
进入控制台后,您可以模拟实际的服务器调用.
wget在控制台中运行会丢弃Rails根目录中的文件,这不是您想要的.tmp是这种事情的标准目录.您可以根据URL动态生成路径,如下所示:
# tmp directory
path = Rails.root.join('tmp')
# create sub-directory as md5 hash based on URL
sub_dir = Digest::MD5.hexdigest(url)
# append sub_dir on the path
destination_path = path.join(sub_dir)
system("wget -P #{destination_path} #{url}")
Run Code Online (Sandbox Code Playgroud)
请务必也包含此帖子中的选项
| 归档时间: |
|
| 查看次数: |
8633 次 |
| 最近记录: |