2011-10-21 47 views
2

我正在開發一個將文件上傳到亞馬遜的應用程序。亞馬遜提供 方法WithServerSideEncryptionMethod(ServerSideEncryptionMethod.AES256)來加密文件,但它不起作用。它將文本保存爲純文本。如何以加密形式上傳文件

public static void UploadFile() 
{ 
    new Program(); 
    var key = "a"; 
    //key = ReplaceDblSlashToSingleFwdSlash(key); 
    //path = ReplaceFwdSlashToBackSlash(path); 
    var request = new PutObjectRequest(); 
    request.WithBucketName("demo") 
      .WithContentBody("i am achal kumar") 
      .WithKey(key) 
      .WithServerSideEncryptionMethod(ServerSideEncryptionMethod.AES256); 
    //request.PutObjectProgressEvent += displayFileProgress; 
    S3Response response = s3Client.PutObject(request); 
    response.Dispose(); 
} 
+0

你是如何驗證文件沒有保存加密? – Joe

+0

當你聯繫他們時,亞馬遜支持團隊說了些什麼? –

+0

你如何檢查該文件是否存儲在純文本中? –

回答

0

你可以使用下面的代碼來檢查是否加密或不是..因爲aws s3它們已經在對象返回給你時解密對象。

所以試試下面的代碼,如果該對象在Amazon S3上的加密檢查

GetObjectMetadataRequest meta = new GetObjectMetadataRequest(); 

GetObjectMetadataResponse response = s3Client.GetObjectMetadata(meta); 
if(response.ServerSideEncryptionMethod = ServerSideEncryptionMethod.AES256) 
{ 
    // your code goes here 
} 

我希望這能幫助

3

您的數據很可能會被加密,只是在您正在測試的同時自動解密。

加密數據的

http://aws.typepad.com/aws/2011/10/new-amazon-s3-server-side-encryption.html

解密需要您做任何努力。當你獲得一個加密對象時,我們獲取並解密密鑰,然後用 來解密你的數據。我們還在對GET的 響應中包含一個額外的標題,讓您知道數據以加密的形式存儲在Amazon S3中的 中。