我正在开发一个Ruby on Rails网络应用程序。用户可以上传文件并将其存储到Amazons S3。对于文件上传,我使用paperclip gem。
如何在保存之前使用AES256加密文件?我知道S3有服务器端加密,但这并不适合我,因为我在移动应用程序中打开网站,并希望在客户端上处理解密。
我知道我可以使用paperclip处理器或before_post_process方法,但是如何获取正在上传的文件并进行更改呢?
答案 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函数。
如果您没有设置回形针,可能值得查看this的CarrierWave加载项宝石,它可能会为您节省一些时间。