【问题标题】:Find the binary of a file uploaded using ActiveStorage查找使用 ActiveStorage 上传的文件的二进制文件
【发布时间】:2019-02-23 18:07:41
【问题描述】:

我正在创建一个网站,用户可以在其中上传 PDF 格式的文档。 我的理解是一个文件,一旦上传,就会在数据库中保存为二进制文件。

我想了解 ActiveStorage 如何保存此文档(以二进制形式)。基本上,我需要在我的控制器中检索该特定文件的 0 和 1。

我想知道如何检索这个二进制文件(作为字符串)。

我需要二进制文件,因为我想对它进行哈希处理,以便将 PDF 的哈希值与另一个 PDF 的哈希值进行比较,并判断它们是否相同。

另外:如果用户上传相同 PDF 文件两次。 ActiveRecords中的二进制是一样的吗?

【问题讨论】:

  • 您将文件保存在哪里?在数据库上还是在文件系统上?
  • 现在我正在使用 Postgres(不确定是不是你问的,抱歉)

标签: ruby-on-rails ruby rails-activestorage


【解决方案1】:

您不需要这样做,Active Storage 会计算您文件的 Base64 编码的 MD5 摘要,可通过checksum 方法获得。

ActiveStorage::Blob#checksum

【讨论】:

  • 谢谢。那么如何才能找到该特定 PDF 内容的唯一标识符呢?我不清楚checksum 方法给了我什么或如何使用它。
  • 校验和是唯一标识符,它是一个哈希摘要,(例如:27848dbbd8800a97720d7b5a77092b17)如果将同一个文件保存两次,校验和将是相同的。
  • 谢谢,但我从哪里得到它?在我的控制器中应该是 @document.checksum 之类的东西吗?
  • model_instance.attachment_assoc_name.checksum, edgeguides.rubyonrails.org/active_storage_overview.html
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-21
  • 2011-08-24
  • 1970-01-01
  • 2011-02-26
  • 2021-12-18
相关资源
最近更新 更多