到目前爲止,我已經能夠成功使用node.js,express和knox在Amazon S3中添加/更新/刪除/檢索對象。試圖將事物提升到一個新的水平我想弄清楚如何使用knox(如果有可能)做兩件事:打開服務器端加密並使用knox和nodejs在Amazon S3中獲取對象版本
1)設置對象在添加/更新對象時使用服務器端加密。
2)獲取對象的特定版本或獲取對象版本的列表。
到目前爲止,我已經能夠成功使用node.js,express和knox在Amazon S3中添加/更新/刪除/檢索對象。試圖將事物提升到一個新的水平我想弄清楚如何使用knox(如果有可能)做兩件事:打開服務器端加密並使用knox和nodejs在Amazon S3中獲取對象版本
1)設置對象在添加/更新對象時使用服務器端加密。
2)獲取對象的特定版本或獲取對象版本的列表。
安迪(誰寫了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');
});
我知道這是一個老問題,但可以通過指定報頭使用服務器端加密上傳與諾克斯文件:
client.putFile('test.txt', '/test.txt', {"x-amz-server-side-encryption": "AES256"}, function(err, res) {
//Do something here
});
非常感謝您的支持!一整天都在尋找這個解決方案。 – ArVan
我沒能找到答案爲此 - 主要是因爲我認爲這是不可能的,因爲它代表着諾克斯。我嘗試修改源代碼,但S3 API仍然太新以創建可行的解決方案。我終於找到了具有更完整API覆蓋的node-awssum(https://github.com/appsattic/node-awssum/)。此外,它還可以與其他AWS服務以及Facebook和Twitter等其他服務一起使用。 –