我正在开发一个 Ruby on Rails 网络应用程序。用户可以上传文件并将它们存储到 Amazons S3。对于文件上传,我使用回形针 gem。
如何在保存文件之前使用 AES256 加密文件?我知道 S3 具有服务器端加密,但这对我来说并不适用,因为我在移动应用程序中打开该站点并希望在客户端处理解密。
我知道我可以使用回形针处理器或 before_post_process 方法,但是如何获取正在上传的文件并进行更改?
我正在开发一个 Ruby on Rails 网络应用程序。用户可以上传文件并将它们存储到 Amazons S3。对于文件上传,我使用回形针 gem。
如何在保存文件之前使用 AES256 加密文件?我知道 S3 具有服务器端加密,但这对我来说并不适用,因为我在移动应用程序中打开该站点并希望在客户端处理解密。
我知道我可以使用回形针处理器或 before_post_process 方法,但是如何获取正在上传的文件并进行更改?
看看这个关于异步上传到 S3 的回形针配方。您可以使用它,然后将回调代码更改为:
def upload_to_s3
self.remote_avatar = encrypt(local_avatar.to_file)
self.local_avatar = nil
self.save!
end
其中方法encrypt
是AES256函数。
如果您没有设置回形针,可能值得研究一下CarrierWave的这个附加宝石,它可能会为您节省一些时间。