4

我正在开发一个 Ruby on Rails 网络应用程序。用户可以上传文件并将它们存储到 Amazons S3。对于文件上传,我使用回形针 gem。

如何在保存文件之前使用 AES256 加密文件?我知道 S3 具有服务器端加密,但这对我来说并不适用,因为我在移动应用程序中打开该站点并希望在客户端处理解密。

我知道我可以使用回形针处理器或 before_post_process 方法,但是如何获取正在上传的文件并进行更改?

4

1 回答 1

2

看看这个关于异步上传到 S3 的回形针配方。您可以使用它,然后将回调代码更改为:

def upload_to_s3
  self.remote_avatar = encrypt(local_avatar.to_file)
  self.local_avatar = nil
  self.save!
end

其中方法encrypt是AES256函数。

如果您没有设置回形针,可能值得研究一下CarrierWave的这个附加宝石,它可能会为您节省一些时间。

于 2014-02-19T16:59:02.683 回答