2012-02-02 42 views
12

總之
總之,我想知道如果我可以通過carrierwave霧連接到Amazon S3發送額外的頭?添加額外的頭,以Carrierwave對於Amazon S3加密

深度
我最近發現,amazon支持客戶端和服務器端加密文件。更多信息»http://docs.amazonwebservices.com/AmazonS3/latest/dev/SSEUsingRESTAPI.html

我目前在rails應用程序中使用carrierwave將文件上傳到amazon s3。
對於服務器端加密,amazon要求標頭爲將x-amz-server-side-encryption = AES256添加到請求中。

所以我想找出如何通過我的carrierwave和fog發送額外的頭文件。

我的想法是,也許我可以使用fog_attribute配置行,如下所示,也許可以工作,但我不知道fog_attribute是爲partiular屬性或只是一個毛毯頭部分。

config.fog_attributes = {'x-amz-server-side-encryption' => 'AES256','Cache-Control'=>'max-age=315576000'} # optional, defaults to {} 

所以,我終於得到了我的形狀應用程序來測試這個可惜沒有奏效。

我還發現這個:https://github.com/geemus/fog/commit/070e2565d3eb08d0daaa258ad340b6254a9c6ef2在霧資源庫中提交,這讓我覺得fog_attributes方法是針對已定義的屬性列表。

必須有一種方法來完成這項工作。任何人?

+0

我相信這應該工作。你應該能夠設置它然後測試它。 – Amala 2012-02-10 21:10:22

回答

4

我相信實際上應該是正確的,但請注意,我不相信服務器端加密的東西已經發布,所以你需要使用邊緣霧來獲得這種行爲。我希望儘快做一個發佈,然後應該是很好的去。如果你發現你仍然無法在邊緣工作,請讓我知道,但我們會試着看看能做些什麼。

+1

邊緣霧效果很好!謝謝你的幫助! – JonathanSimmons 2012-02-28 05:52:12

1

我不能談論CarrierWave,但這個工程的用AWS256加密保存文件與(目前)標準霧分佈:

file.attributes[:encryption ] = "AES256" 
result = file.save() 

然而,這不適用於複製文件。什麼適用於複製是:

fogfile.copy(@bucket_archived, newfilename, {'x-amz-server-side-encryption' => 'AES256'}) 
相關問題