如何在上传到S3之前加密paperclip附件?

4
我正在开发一款基于Ruby on Rails的Web应用程序。用户可以上传文件并将它们存储到Amazon S3中。我使用了paperclip gem进行文件上传。
如何在保存之前使用AES256加密文件?我知道S3有服务器端加密,但这对我并不起作用,因为我要在移动应用程序中打开网站,并希望在客户端上处理解密。
我知道可以使用paperclip processors或before_post_process方法,但是如何获取被上传的文件并更改文件呢?
1个回答

2

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

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

encrypt 方法是 AES256 函数。

如果你不确定是否要使用 paperclip,可能值得研究一下 这个 增强 gem,它为 CarrierWave 提供了一些便利,可以节省时间。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接