【问题标题】:Where to save scraped images?在哪里保存抓取的图像?
【发布时间】:2010-12-29 13:44:03
【问题描述】:

我正在构建一个 Ruby on Rails 应用程序,用于从网站上抓取图像。将此图像保存到哪个位置的最佳位置?

编辑: 需要明确的是,我知道文件系统是最好的存储类型,但是文件系统在哪里呢?我想我必须留在 RoR 应用程序目录中,但哪个文件夹最适合这个? public?

【问题讨论】:

  • 文件系统,我想。没有更多信息,很难更具体。
  • 是的,当然是文件系统,但具体在哪里。 RoR 应用有特定的结构,但我不知道哪个目录最适合这个。
  • 典型解决方案:public 下的某处。例如:tutorialspoint.com/ruby-on-rails/rails-file-uploading.htm
  • 充当知识产权警察并轻轻拍拍肩膀以提醒您:您有权抓取图像并为它们提供服务,对吗?刮掉它们意味着你不这样做,这可能会导致你的主机/网站被禁止,或者更糟糕的是,诉讼。检查以确保您符合所访问网站的服务条款。

标签: ruby-on-rails ruby web-scraping


【解决方案1】:

在您的文件服务器(静态 Apache 服务器)上,在您的应用服务器上(在磁盘本地保存一些位置并通过应用服务器提供服务)或 Amazon S3

但我建议不要存储在数据库中。 (有些人认为没关系。所以,我将仅限于建议)


在 ROR 中,在 <app_name>/public/images see here 下——但数据将是公开的。如果您担心隐私,那可能是不对的。

如果您担心隐私,请参阅此处讨论的选项How to store private pictures and videos in Ruby on Rails 但建议:在高流量条件下从应用服务器提供文件可能会很痛苦,我的经验是最好将其卸载到文件服务器或像 S3 这样的云。

【讨论】:

  • 扩展“不存储在数据库中”答案:文件用于文件系统。数据库不是为文件设计的。请不要那样做。
  • 如果我希望数据是私有的,那么您推荐什么位置?
  • stackoverflow.com/questions/2752497/… 你可以在这里看到各种建议。请注意,来自您的应用服务器的服务文件是高流量的负担。最好将其加载到云端。
【解决方案2】:

编写和/或创建只提供来自您网站目录结构之外的文件存储的图像的服务器并不难。对 URL 进行简单的重写就可以为您的代码提供实际文件位置所需的信息,然后将其输出到浏览器。

另一种方法是将图像的 URL 映射到数据库中图像的目录路径,然后进行查找。使 URL 字段成为索引查找,它会非常快。

几年前我按照这些思路用 Ruby 编写了一个图像服务器,这是一项非常简单的任务。

【讨论】:

    猜你喜欢
    • 2022-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-15
    • 1970-01-01
    • 2019-05-04
    相关资源
    最近更新 更多