Skip to content

Commit d763015

Browse files
committed
Fix non-direct upload with endpoints that don't support the sha header
x-amz-content-sha256
1 parent ce0ff7f commit d763015

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

src/main/java/edu/harvard/iq/dataverse/dataaccess/S3AccessIO.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,12 +9,12 @@
99
import software.amazon.awssdk.core.ResponseInputStream;
1010
import software.amazon.awssdk.core.async.AsyncRequestBody;
1111
import software.amazon.awssdk.core.async.AsyncResponseTransformer;
12+
import software.amazon.awssdk.core.checksums.RequestChecksumCalculation;
1213
import software.amazon.awssdk.http.nio.netty.NettyNioAsyncHttpClient;
1314
import software.amazon.awssdk.http.nio.netty.NettyNioAsyncHttpClient.Builder;
1415
import software.amazon.awssdk.regions.Region;
1516
import software.amazon.awssdk.services.s3.S3AsyncClient;
1617
import software.amazon.awssdk.services.s3.S3AsyncClientBuilder;
17-
import software.amazon.awssdk.services.s3.S3Client;
1818
import software.amazon.awssdk.services.s3.S3Configuration;
1919
import software.amazon.awssdk.services.s3.model.*;
2020
import software.amazon.awssdk.services.s3.presigner.S3Presigner;
@@ -362,6 +362,7 @@ public void savePath(Path fileSystemPath) throws IOException {
362362

363363
newFileSize = Files.size(fileSystemPath);
364364
} catch (Exception e) {
365+
logger.warning(e.getMessage());
365366
throw new IOException(
366367
"S3AccessIO: Exception occurred while uploading a local file into S3Object " + key, e);
367368
}
@@ -1244,7 +1245,7 @@ private static S3AsyncClient getClient(String driverId) {
12441245
return driverClientMap.get(driverId);
12451246
} else {
12461247
// Create a builder for the S3AsyncClient
1247-
S3AsyncClientBuilder s3CB = S3AsyncClient.builder();
1248+
S3AsyncClientBuilder s3CB = S3AsyncClient.builder().requestChecksumCalculation(RequestChecksumCalculation.WHEN_REQUIRED);
12481249

12491250
// Create a custom HTTP client with the desired pool size
12501251
Integer poolSize = Integer.getInteger("dataverse.files." + driverId + ".connection-pool-size", 256);

0 commit comments

Comments
 (0)