如何在下载期间解密AWS S3文件?

时间:2016-09-27 14:06:43

标签: c# amazon-web-services encryption amazon-s3

这是我的下载代码:

 IAmazonS3 client;

            string key = tenant_id + @"/files/" + filename;
            try
            {
                using (client = new AmazonS3Client(Amazon.RegionEndpoint.USEast1))
                {
                    GetObjectRequest request = new GetObjectRequest
                    {
                        BucketName = existingBucketName,
                        Key = key
                    };

                    using (GetObjectResponse response = client.GetObject(request))
                    {
                        string dest = path;
                        if (!File.Exists(dest))
                        {
                            response.WriteResponseStreamToFile(dest);
                        }
                    }
                }
                return true;
            }

我想在下载过程中解密文件。我已经浏览了支持文档,但无法继续。我需要在当前代码中进行哪些更改才能实现此目的?

1 个答案:

答案 0 :(得分:1)

这取决于文件的加密方式。 S3支持client-side encryptionserver-side encryption

如果使用服务器端加密对文件进行加密,则S3正在管理密钥,或者您需要在请求中提供密钥。如果文件在上载到S3之前已在客户端加密,那么您必须自己解密下载的文件。在这种情况下,请查看AmazonS3EncryptionClient以简化操作。