in src/main/java/software/amazon/qldb/tutorial/ExportJournal.java [203:230]
public static ExportJournalToS3Result createJournalExportAndAwaitCompletion(
String ledgerName, String s3BucketName,
String s3Prefix, String roleArn,
S3EncryptionConfiguration encryptionConfiguration,
long awaitTimeoutMs) throws InterruptedException {
AmazonS3 s3Client = AmazonS3ClientBuilder.defaultClient();
createS3BucketIfNotExists(s3BucketName, s3Client);
if (roleArn == null) {
roleArn = createExportRole(EXPORT_ROLE_NAME, AmazonIdentityManagementClientBuilder.defaultClient(),
s3BucketName, encryptionConfiguration.getKmsKeyArn(), EXPORT_ROLE_POLICY_NAME);
}
try {
Date startTime = Date.from(Instant.now().minus(JOURNAL_EXPORT_TIME_WINDOW_MINUTES, ChronoUnit.MINUTES));
Date endTime = Date.from(Instant.now());
ExportJournalToS3Result exportJournalToS3Result = createExport(ledgerName, startTime, endTime, s3BucketName,
s3Prefix, encryptionConfiguration, roleArn);
// Wait for export to complete.
waitForExportToComplete(Constants.LEDGER_NAME, exportJournalToS3Result.getExportId(), awaitTimeoutMs);
log.info("JournalS3Export for exportId " + exportJournalToS3Result.getExportId() + " is completed.");
return exportJournalToS3Result;
} catch (Exception e) {
log.error("Unable to create an export!", e);
throw e;
}
}