当前位置: 首页 > 知识库问答 >
问题:

S3通过SSE-KMS进行多部分上传

麹飞航
2023-03-14

我正在尝试使用aws-java-sdk(1.11.230)编写一个实用程序。我可以使用PutObjectRequest编写SSE-KMS文件,如下所示:

PutObjectRequest putRequest = new PutObjectRequest(existingBucketName, keyName, file)
                        .withSSEAwsKeyManagementParams(kmsKeyId);

但是在尝试以多部分方式上传它时,我找不到任何方法来指定SSE-KMS的加密配置。

任何人都可以建议一种方法来成功完成这一任务吗。如有任何建议,我们将不胜感激。

维卡什·帕里克

共有2个答案

漆雕皓轩
2023-03-14

最后,我能够找到解决这个问题的方法。可以通过将头设置为InitiateMultipartUploadRequest对象来完成,如下所示:

InitiateMultipartUploadRequest initRequest = new
                InitiateMultipartUploadRequest(bucketName, keyName);
        initRequest.putCustomRequestHeader("x-amz-server-side-encryption", "aws:kms");
        initRequest.putCustomRequestHeader("x-amz-server-side-encryption-aws-kms-key-id", kmsKey);
夏兴平
2023-03-14

也可以这样做:

InitiateMultipartUploadRequest initRequest = new InitiateMultipartUploadRequest("example-bucket", "textfile.txt");      SSEAwsKeyManagementParams kms = new SSEAwsKeyManagementParams("KMS-key-alias");
initRequest.setSSEAwsKeyManagementParams(kms);
initResponse = s3Client.initiateMultipartUpload(initRequest);
 类似资料:
  • 我试图使用cloudfront作为endpoint进行多部分上传,我知道这是可能的(https://Github.com/aws/aws-sdk-js/issues/423),我也在aws-sdk-js的Github上开了一张罚单,我不知道我是否缺少了一些配置选项,或者其他什么,但我不能使用aws sdk多部分上传函数在cloudfront上传,我总是在PUT请求上得到503个。 我使用以下代码启

  • 我试图用python写的lambda (aws)完成多部分上传。下面是我正在使用的代码。大约有120个部件,总大小为30GB。下面的操作似乎没有在5分钟内完成,因此lambda关闭,上传似乎没有完成。S3提供异步多部分上传功能吗?我相信这将确保文件得到合并,不管lambda关闭。

  • 我正在使用 Amazon S3 分段上传,我读到您可以并行上传部分文件。但是,通过查看文档,我发现亚马逊对上传的文件部件的响应不包含部件号。所以我的问题是,如果我异步上传文件的第1部分和文件的第2部分,那么我检查来自亚马逊的响应,我如何知道响应是引用文件的第1部分还是第2部分? 下面是一个请求和响应的示例。

  • 这是我当前通过CloudFront成功上传文件到S3的代码: 现在对于分块上传(或者AWS术语中的多部分),我不知道如何通过CloudFront(只有S3的文档)来完成它。 它发送了一个预飞行请求(OPTIONS),并返回,其中包含以下响应头: 但实际的POST请求返回并带有以下响应头:

  • 我正在尝试使用AmazonS3服务器端加密(KMS)多部分上传一个文件。我有点困惑,我的代码中是否需要KMS键,如果需要,那么我如何将它添加到Java代码中呢? --更新私有静态void saveMultipartData(String clientRegion,String bucketName,String awsFilePath,File File){AmazonS3 s3client=Am

  • 我上传到S3使用以下代码: 我无法了解boto内部如何处理分段上传的任何信息。我对同样的事情有几个问题,让我们假设我有2.5 MB的文件: 然后文件将分3部分上传,如1,1和.5 MB? 所有3个部分将并行上传还是按顺序上传? 在java的aws库中,我们有转移管理器,在博托中有什么类似的东西吗? 此代码是否足以用于多段上传?因为我遇到了一些复杂的代码示例 任何帮助都将不胜感激。