使用Carrierwave加密/解密文件并存储在S3(Rails)中

时间:2011-09-01 01:05:56

标签: ruby-on-rails encryption amazon-s3 carrierwave

我需要能够在将文件存储在S3上之前加密文件,然后在访问它们时对其进行解密。文件将是图像,文档,PDF等。

我正在使用Carrierwave来处理文件上传和存储(这是使用Ruby on Rails)。我将它们存储在Amazon S3中。

有没有人这样做,或者有任何想法如何实现这一目标?

感谢。

3 个答案:

答案 0 :(得分:4)

亚马逊现在发布了一些功能,可让您在S3中自动加密/解密文件。自己做这件事的必要性已经不复存在了。详情请见http://docs.amazonwebservices.com/AmazonS3/latest/dev/index.html?UsingEncryption.html

答案 1 :(得分:3)

要处理加密,您应该考虑实现处理器。如果您正在使用任何其他处理器,您可能需要考虑扩展Carrierwave gem并添加处理器订购机制,以便确保最后进行加密。

对于解密,您可以覆盖现有的访问者以使解密透明,或者添加一个返回解密文件的新方法,并使用该方法代替访问者。后一种方法可能对上游变化更具弹性。

答案 2 :(得分:2)

我知道这篇文章有几个月了,但是如果你还在寻找答案,请查看我写的carrierwave_securefile gem。它仍然是新的,可能在其他设置上有点麻烦,但它在上传之前使用Crypt19对文件进行Blowfish加密。

http://github.com/dougc84/carrierwave_securefile