如何以加密形式上传文件

时间:2011-10-21 12:44:18

标签: c# encryption amazon-s3

我正在开发一个将文件上传到亚马逊的应用程序。亚马逊提供 方法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();
}

2 个答案:

答案 0 :(得分:3)

您的数据可能已加密,只是在您正在测试的内容中自动解密。

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

  

加密数据的解密不需要您付出任何努力。什么时候   你获取一个加密的对象,我们获取并解密密钥,然后   用它来解密你的数据。我们还包括一个额外的标题   响应GET,让您知道数据存储在   Amazon S3中的加密表单。

答案 1 :(得分:0)

您可以使用以下代码检查是否加密..因为aws s3他们在将对象返回给您时已经解密了对象。

所以请尝试以下代码检查对象是否在amazon s3上加密

GetObjectMetadataRequest meta = new GetObjectMetadataRequest();

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

我希望这可以帮助