如何在将回形针附件上传到S3之前对其进行加密?

时间:2012-11-15 10:30:32

标签: ruby-on-rails amazon-s3 paperclip aes

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

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

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

1 个答案:

答案 0 :(得分:1)

查看此paperclip recipe on asynchronous上传到S3。您可以使用它,然后将回调代码更改为:

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

方法encrypt是AES256函数。

如果您没有设置回形针,可能值得查看thisCarrierWave加载项宝石,它可能会为您节省一些时间。