Disable checksums on non-AWS destinations

This commit is contained in:
Caelan Sayler
2025-01-30 11:47:15 +00:00
committed by Caelan
parent 2697268f4f
commit ada967257e

View File

@@ -1,4 +1,5 @@
using Amazon; using Amazon;
using Amazon.Runtime;
using Amazon.S3; using Amazon.S3;
using Amazon.S3.Model; using Amazon.S3.Model;
using Microsoft.Extensions.Logging; using Microsoft.Extensions.Logging;
@@ -97,7 +98,7 @@ public class S3Repository : ObjectRepository<S3DownloadOptions, S3UploadOptions,
var config = new AmazonS3Config() { var config = new AmazonS3Config() {
ServiceURL = options.Endpoint, ServiceURL = options.Endpoint,
ForcePathStyle = true, // support for MINIO ForcePathStyle = true, // support for MINIO
Timeout = TimeSpan.FromMinutes(options.Timeout) Timeout = TimeSpan.FromMinutes(options.Timeout),
}; };
if (options.Endpoint != null) { if (options.Endpoint != null) {
@@ -108,6 +109,8 @@ public class S3Repository : ObjectRepository<S3DownloadOptions, S3UploadOptions,
var uri = new Uri(options.Endpoint); var uri = new Uri(options.Endpoint);
if (uri.Scheme.Equals("https", StringComparison.OrdinalIgnoreCase) && !uri.Host.Equals("amazonaws.com", StringComparison.OrdinalIgnoreCase)) { if (uri.Scheme.Equals("https", StringComparison.OrdinalIgnoreCase) && !uri.Host.Equals("amazonaws.com", StringComparison.OrdinalIgnoreCase)) {
disableSigning = true; disableSigning = true;
config.ResponseChecksumValidation = ResponseChecksumValidation.WHEN_REQUIRED;
config.RequestChecksumCalculation = RequestChecksumCalculation.WHEN_REQUIRED;
} }
} else if (options.Region != null) { } else if (options.Region != null) {
config.RegionEndpoint = RegionEndpoint.GetBySystemName(options.Region); config.RegionEndpoint = RegionEndpoint.GetBySystemName(options.Region);