2012-06-09 27 views
0

到目前爲止,我已經能夠成功使用node.js,express和knox在Amazon S3中添加/更新/刪除/檢索對象。試圖將事物提升到一個新的水平我想弄清楚如何使用knox(如果有可能)做兩件事:打開服務器端加密並使用knox和nodejs在Amazon S3中獲取對象版本

1)設置對象在添加/更新對象時使用服務器端加密。

2)獲取對象的特定版本或獲取對象版本的列表。

+0

我沒能找到答案爲此 - 主要是因爲我認爲這是不可能的,因爲它代表着諾克斯。我嘗試修改源代碼,但S3 API仍然太新以創建可行的解決方案。我終於找到了具有更完整API覆蓋的node-awssum(https://github.com/appsattic/node-awssum/)。此外,它還可以與其他AWS服務以及Facebook和Twitter等其他服務一起使用。 –

回答

1

安迪(誰寫了AwsSum)在這裏。

使用AwsSum,當您放置一個對象時,只需將'ServerSideEncryption'設置爲您想要的值(當前S3僅支持'AES256')。簡單! :)

例如

var body = ...; // a buffer, a string, a stream 

var options = { 
    BucketName : 'chilts', 
    ObjectName : 'my-object.ext', 
    ContentLength : Buffer.byteLength(body), 
    Body   : body, 
    ServerSideEncryption : 'AES256' 
}; 

s3.PutObject(options, function(err, data) { 
    console.log("\nputting an object to pie-18 - expecting success"); 
    console.log(err, 'Error'); 
    console.log(data, 'Data'); 
}); 
2

我知道這是一個老問題,但可以通過指定報頭使用服務器端加密上傳與諾克斯文件:

client.putFile('test.txt', '/test.txt', {"x-amz-server-side-encryption": "AES256"}, function(err, res) { 
    //Do something here 
}); 
+0

非常感謝您的支持!一整天都在尋找這個解決方案。 – ArVan

相關問題