小编Wic*_*mon的帖子

Java 堆空间不足以在 AWS S3 上上传文件

我正在尝试使用 Java-AWS API 在 AWS S3 上上传文件。问题是我的应用程序无法上传大型文件,因为堆已达到其限制。错误:java.lang.OutOfMemoryError:Java 堆空间

我个人认为扩展堆内存不是永久的解决方案,因为我必须将文件上传到 100 GB。我该怎么办 ?

这是代码片段:

        BasicAWSCredentials awsCreds = new BasicAWSCredentials(AID, Akey);
        AmazonS3 s3Client = AmazonS3ClientBuilder.standard()
        .withRegion(Regions.fromName("us-east-2"))
        .withCredentials(new AWSStaticCredentialsProvider(awsCreds))
        .build();

        InputStream Is=file.getInputStream();

        boolean buckflag = s3Client.doesBucketExist(ABuck);
        if(buckflag != true){
           s3Client.createBucket(ABuck);
        }
        s3Client.putObject(new PutObjectRequest(ABuck, AFkey,file.getInputStream(),new ObjectMetadata() ).withCannedAcl(CannedAccessControlList.PublicRead));
Run Code Online (Sandbox Code Playgroud)

java amazon-s3 amazon-web-services spring-boot

4
推荐指数
1
解决办法
2135
查看次数