|
31 | 31 | import org.junit.jupiter.params.ParameterizedTest; |
32 | 32 | import org.junit.jupiter.params.provider.Arguments; |
33 | 33 | import org.junit.jupiter.params.provider.MethodSource; |
| 34 | +import software.amazon.awssdk.core.ResponseInputStream; |
34 | 35 | import software.amazon.awssdk.core.retry.backoff.FixedDelayBackoffStrategy; |
| 36 | +import software.amazon.awssdk.core.sync.ResponseTransformer; |
35 | 37 | import software.amazon.awssdk.core.waiters.AsyncWaiter; |
36 | 38 | import software.amazon.awssdk.core.waiters.Waiter; |
37 | 39 | import software.amazon.awssdk.core.waiters.WaiterAcceptor; |
| 40 | +import software.amazon.awssdk.services.s3.model.GetObjectResponse; |
38 | 41 | import software.amazon.awssdk.services.s3.model.ListMultipartUploadsResponse; |
39 | 42 | import software.amazon.awssdk.services.s3.model.ListPartsResponse; |
40 | 43 | import software.amazon.awssdk.services.s3.model.NoSuchUploadException; |
|
43 | 46 | import software.amazon.awssdk.transfer.s3.model.ResumableFileUpload; |
44 | 47 | import software.amazon.awssdk.transfer.s3.model.UploadFileRequest; |
45 | 48 | import software.amazon.awssdk.transfer.s3.progress.LoggingTransferListener; |
| 49 | +import software.amazon.awssdk.transfer.s3.util.ChecksumUtils; |
46 | 50 | import software.amazon.awssdk.utils.Logger; |
47 | 51 |
|
48 | 52 | public class S3TransferManagerUploadPauseResumeIntegrationTest extends S3IntegrationTestBase { |
@@ -167,7 +171,12 @@ void pause_fileChanged_resumeShouldStartFromBeginning(S3TransferManager uploadTm |
167 | 171 | FileUpload resumedUpload = resumeTm.resumeUploadFile(resumableFileUpload); |
168 | 172 | resumedUpload.completionFuture().join(); |
169 | 173 | verifyMultipartUploadIdNotExist(resumableFileUpload); |
170 | | - assertThat(resumedUpload.progress().snapshot().totalBytes()).hasValue(bytes.length); |
| 174 | + |
| 175 | + // Verify via S3 checksum instead of progress snapshot, which may be empty for cross-TM resume |
| 176 | + ResponseInputStream<GetObjectResponse> obj = |
| 177 | + s3.getObject(r -> r.bucket(BUCKET).key(KEY), ResponseTransformer.toInputStream()); |
| 178 | + assertThat(ChecksumUtils.computeCheckSum(bytes)) |
| 179 | + .isEqualTo(ChecksumUtils.computeCheckSum(obj)); |
171 | 180 | } finally { |
172 | 181 | Files.write(largeFile.toPath(), originalBytes); |
173 | 182 | } |
|
0 commit comments