Skip to content
This repository has been archived by the owner on Mar 31, 2022. It is now read-only.

Commit

Permalink
When uploading void txt file has been getting "File upload error" #4
Browse files Browse the repository at this point in the history
  • Loading branch information
glebshalyganov committed May 31, 2021
1 parent 541fffe commit ef5861b
Showing 1 changed file with 12 additions and 0 deletions.
12 changes: 12 additions & 0 deletions awsfs/src/main/java/io/jmix/awsfs/AwsFileStorage.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import io.jmix.core.TimeSource;
import io.jmix.core.UuidProvider;
import io.jmix.core.annotation.Internal;
import io.jmix.core.common.util.Preconditions;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.io.IOUtils;
import org.apache.commons.lang3.StringUtils;
Expand Down Expand Up @@ -51,6 +52,7 @@
import software.amazon.awssdk.services.s3.model.GetObjectRequest;
import software.amazon.awssdk.services.s3.model.ListObjectsV2Request;
import software.amazon.awssdk.services.s3.model.ListObjectsV2Response;
import software.amazon.awssdk.services.s3.model.PutObjectRequest;
import software.amazon.awssdk.services.s3.model.S3Object;
import software.amazon.awssdk.services.s3.model.UploadPartRequest;

Expand Down Expand Up @@ -140,6 +142,8 @@ protected AwsCredentialsProvider getAwsCredentialsProvider() {

public void refreshS3Client() {
refreshProperties();
Preconditions.checkNotEmptyString(region, "region must not be empty");
Preconditions.checkNotEmptyString(bucket, "bucket must not be empty");
AwsCredentialsProvider awsCredentialsProvider = getAwsCredentialsProvider();
if (Strings.isNullOrEmpty(endpointUrl)) {
s3ClientReference.set(S3Client.builder()
Expand Down Expand Up @@ -193,6 +197,14 @@ public FileRef saveStream(String fileName, InputStream inputStream) {
S3Client s3Client = s3ClientReference.get();
int chunkSizeBytes = this.chunkSize * 1024;

if (data.length == 0) {
s3Client.putObject(PutObjectRequest.builder()
.bucket(bucket)
.key(fileKey)
.build(), RequestBody.fromBytes(data));
return new FileRef(getStorageName(), fileKey, fileName);
}

CreateMultipartUploadRequest createMultipartUploadRequest = CreateMultipartUploadRequest.builder()
.bucket(bucket)
.key(fileKey)
Expand Down

0 comments on commit ef5861b

Please sign in to comment.