你可以使用 aws java sdk 来实现它
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.11.398</version>
</dependency>
使用以下方法创建一个 amazon s3 客户端
BasicAWSCredentials credentials = new BasicAWSCredentials("access_key", "secret_key");
AmazonS3 amazonS3 = AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(credentials)).build();
创建一个 TransferManager 并设置 MultipartUploadThresholdload。
Amazon S3 规定最小部分大小为 5mb,所以我们在这里使用 5mb。您可以根据需要增加尺寸。
TransferManager tm = TransferManagerBuilder.standard()
.withS3Client(amazonS3)
.withMultipartUploadThreshold((long) (5 * 1024 * 1024))
.build();
设置您要上传的 S3 存储桶名称,keyName 将用于命名上传的文件。 tm.upload 将在后台启动上传过程。
String bucketName = "my-bucket";
String keyName = "mydata.zip";
File file = new File("path_to_file/mydata.zip");
Upload upload = tm.upload(bucketName, keyName, file);
waitForCompletion 是阻塞调用,一旦函数完成上传文件到 s3 就会返回结果。
try {
upload.waitForCompletion();
} catch (AmazonClientException e) {
// ...
}