Amazon S3 服务器端加密

Amazon S3 server side encryption

我试图在将文件异步上传到 Amazon S3 时启用服务器端加密。我可以上传文件,但不知道在哪里指定加密选项。有什么想法吗?

using (var s3Client = new AmazonS3Client(awsAccessKeyID, awsSecretAccessKey, regionEndPoint))
{
   using (TransferUtility fileTransferUtility = new TransferUtility(s3Client))
   {
     await fileTransferUtility.UploadAsync(filePath, bucketName, objectkey);
   }
}

编辑:

我知道 Amazon 有关于如何使用 putObjectRequest 指定加密的文档,但想知道是否可以使用 FileTransferUtility 来完成。

http://docs.aws.amazon.com/AmazonS3/latest/dev/SSEUsingDotNetSDK.html

参见http://docs.aws.amazon.com/AmazonS3/latest/dev/SSEUsingDotNetSDK.html,具体来说,就是这个:

When using the high-level multipart upload API (see Using the High-Level .NET API for Multipart Upload), the TransferUtility class provides methods (Upload and UploadDirectory) to upload objects. In this case, you can request server-side encryption using the TransferUtilityUploadRequest and TransferUtilityUploadDirectoryRequest objects.

应该是这样的(不好意思,暂时没地方测试):

TransferUtilityUploadRequest fileTransferUtilityRequest = new TransferUtilityUploadRequest
{
    BucketName = existingBucketName,
    FilePath = filePath,
    StorageClass = S3StorageClass.ReducedRedundancy,
    PartSize = 6291456, // 6 MB.
    Key = keyName,
    ServerSideEncryptionMethod = ServerSideEncryptionMethod.AES256
};
fileTransferUtility.UploadAsync(fileTransferUtilityRequest, someCancelToken);