【问题标题】:How to upload a file in encrypted form如何以加密形式上传文件
【发布时间】:2011-12-12 13:39:44
【问题描述】:

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

【问题讨论】:

  • 您如何验证文件未加密保存?
  • 当您联系亚马逊支持人员时他们说了什么?
  • 你如何检查文件是否以明文形式存储?
  • 我已经去服务器和登录然后我看到那个文件和我上传的一样

标签: c# encryption amazon-s3


【解决方案1】:

您的数据很可能已加密,并且正在使用您正在测试的 get 自动解密。

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

加密数据的解密无需您付出任何努力。什么时候 你得到一个加密对象,我们获取并解密密钥,然后 用它来解密你的数据。我们还在 响应 GET 让您知道数据存储在 Amazon S3 中的加密形式。

【讨论】:

    【解决方案2】:

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

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

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

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-04
      • 1970-01-01
      • 1970-01-01
      • 2016-03-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多