java s3文件批量上传工具
时间: 2025-02-02 20:13:16 浏览: 19
在Java中,Amazon S3 (Simple Storage Service) 文件批量上传通常会利用AWS SDK for Java提供的便利功能。Maven或Gradle项目中可以引入com.amazonaws:aws-java-sdk-s3
库来进行操作。AWS SDK提供了一个AmazonS3
客户端,以及ListObjectsRequest
和TransferManager
等工具来批量上传。
一种常见的做法是创建一个任务列表(例如List<S3Object>
),然后使用TransferManager
的uploadAll()
方法,它可以在后台线程中并行上传文件。以下是一个简单的示例:
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.AmazonClientBuilder;
import com.amazonaws.services.s3.*;
import com.amazonaws.services.s3.transfer.TransferManager;
import com.amazonaws.services.s3.model.*;
public class S3BatchUploader {
public static void main(String[] args) {
String bucketName = "your-bucket-name";
String localDirectoryPath = "/path/to/local/directory";
AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
.withRegion("us-west-2") // AWS区域
.withCredentials(new AWSStaticCredentialsProvider(new BasicAWSCredentials("access-key", "secret-key"))) // AWS凭证
.build();
TransferManager tm = new TransferManager(s3Client);
ListObjectsV2Request listObjectsRequest = new ListObjectsV2Request().withBucketName(bucketName);
ListObjectsV2Result objects = s3Client.listObjectsV2(listObjectsRequest);
// 创建一个任务列表
List<Transfer> uploads = new ArrayList<>();
for (S3ObjectSummary objectSummary : objects.getObjectSummaries()) {
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectSummary.getKey(), new File(localDirectoryPath + "/" + objectSummary.getKey()));
uploads.add(tm.upload(putObjectRequest));
}
try {
tm.waitForUploadCompletion(uploads);
System.out.println("所有文件已成功上传到S3.");
} catch (Exception e) {
e.printStackTrace();
}
}
}
相关推荐


















