Amazon S3服务器端加密

时间:2015-03-24 01:50:19

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

我正在尝试将文件异步上传到Amazon S3时打开服务器端加密。我有文件上传工作但无法确定在何处指定加密选项。有什么想法吗?

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

编辑:

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

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

1 个答案:

答案 0 :(得分:2)

请参阅http://docs.aws.amazon.com/AmazonS3/latest/dev/SSEUsingDotNetSDK.html,具体请注意:

  

使用高级分段上传API(请参阅Using the High-Level .NET API for Multipart Upload)时,TransferUtility类提供上传对象的方法(Upload和UploadDirectory)。在这种情况下,您可以使用TransferUtilityUploadRequest和TransferUtilityUploadDirectoryRequest对象请求服务器端加密。

它应该是这样的(对不起,暂时不在测试它的地方):

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