AWSS3中的分段上传
创始人
2024-09-27 00:30:44
0

在使用AWS S3存储大文件时,可以选择使用分段上传来提高上传效率和稳定性。以下是使用AWS SDK for Java进行分段上传的示例代码:

  1. 初始化S3客户端和上传请求

AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withRegion(Regions.US_EAST_1).build(); InitiateMultipartUploadRequest initRequest = new InitiateMultipartUploadRequest(bucketName, objectKey); InitiateMultipartUploadResult initResponse = s3Client.initiateMultipartUpload(initRequest);

  1. 将文件分为多个部分并逐一上传

File file = new File(filePath); long contentLength = file.length(); long partSize = 5 * 1024 * 1024; // 设置每个部分的大小为5MB int partCount = (int) Math.ceil((double) contentLength / partSize);

List partETags = new ArrayList<>(); for (int i = 0; i < partCount; i++) { long start = i * partSize; long end = Math.min(start + partSize, contentLength); long partLength = end - start; FileInputStream fis = new FileInputStream(file); fis.skip(start);

UploadPartRequest uploadRequest = new UploadPartRequest()
        .withBucketName(bucketName)
        .withKey(objectKey)
        .withUploadId(initResponse.getUploadId())
        .withPartNumber(i + 1)
        .withPartSize(partLength)
        .withInputStream(fis);

UploadPartResult uploadResult = s3Client.uploadPart(uploadRequest);
partETags.add(uploadResult.getPartETag());

fis.close();

}

  1. 完成分段上传并获取文件的URL

CompleteMultipartUploadRequest compRequest = new CompleteMultipartUploadRequest(bucketName, objectKey, initResponse.getUploadId(), partETags); s3Client.completeMultipartUpload(compRequest);

GeneratePresignedUrlRequest urlRequest = new GeneratePresignedUrlRequest(bucketName, objectKey) .withMethod(HttpMethod.GET) .withExpiration(new Date(System.currentTimeMillis() + 604800000)); // 设置URL的有效期为一周 URL url =

相关内容

热门资讯

透视详情!pokeplus脚本... 透视详情!pokeplus脚本(透视)wepoker辅助透视软件,教程妙招(有挂讲解)-哔哩哔哩1、...
wepoker可以免费玩吗!p... wepoker可以免费玩吗!pokemmo辅助器手机版下载(透视)软件-总是科普真的是有挂1、进入游...
透视解密!德普之星私人局辅助器... 透视解密!德普之星私人局辅助器(透视)we-poker辅助器,教程大纲(有人有挂)-哔哩哔哩1、许多...
hhpoker有后台操控吗!德... hhpoker有后台操控吗!德州局HHpoker透视脚本(透视)神器-本来关于存在有挂1)德州局HH...
透视关于!wepoker透视是... 透视关于!wepoker透视是真的吗(透视)pokemmo免费脚本,教程演示(揭秘有挂)-哔哩哔哩w...
hhpoker是真的还是假的!... hhpoker是真的还是假的!wpk辅助是什么(透视)软件-真是揭幕是有挂1、不需要AI权限,帮助你...
透视解密!wepoker透视有... 透视解密!wepoker透视有吗(透视)wepoker一直输的号能继续打吗,教程法门(详细教程)-哔...
we-poker辅助软件教程!... we-poker辅助软件教程!wepoker怎么挂底牌(透视)app-其实了解是有挂we-poker...
透视揭露!hhpoker一直输... 透视揭露!hhpoker一直输有挂吗(透视)wepoker私人局辅助,教程资料(有挂总结)-哔哩哔哩...
拱趴大菠萝挂怎么安装!wpk私... 拱趴大菠萝挂怎么安装!wpk私人局有透视吗(透视)app-一直辅助真的有挂1、拱趴大菠萝挂怎么安装破...