@Override public Iterable<ObjectSummary> allObjects() { if (config.isIncludeVersions()) { return new Iterable<ObjectSummary>() { @Override public Iterator<ObjectSummary> iterator() { return new CombinedIterator<>(Arrays.asList(new PrefixIterator(config.getKeyPrefix()), new DeletedObjectIterator(config.getKeyPrefix()))); } }; } else { return new Iterable<ObjectSummary>() { @Override public Iterator<ObjectSummary> iterator() { return new PrefixIterator(config.getKeyPrefix()); } }; } }
@Override public SyncObject loadObject(String identifier) throws ObjectNotFoundException { return loadObject(identifier, config.isIncludeVersions()); }
if (config.isIncludeVersions() && sourceVersionList != null) { ListIterator<S3ObjectVersion> sourceVersions = sourceVersionList.listIterator(); ListIterator<S3ObjectVersion> targetVersions = loadVersions(identifier).listIterator();
if (bucketExists && config.isIncludeVersions()) { s3.createBucket(config.getBucketName()); bucketExists = true; if (config.isIncludeVersions()) { s3.setBucketVersioningConfiguration(new SetBucketVersioningConfigurationRequest(config.getBucketName(), new BucketVersioningConfiguration(BucketVersioningConfiguration.ENABLED))); if (config.isIncludeVersions()) { if (!(source instanceof AbstractS3Storage && target instanceof AbstractS3Storage)) throw new ConfigurationException("Version migration is only supported between two S3 plugins");
Assert.assertEquals("source bucket mismatch", sourceBucket, s3Source.getBucketName()); Assert.assertNull("source keyPrefix should be null", s3Source.getKeyPrefix()); Assert.assertTrue("source includeVersions should be enabled", s3Source.isIncludeVersions()); Assert.assertTrue("target createBucket should be enabled", s3Target.isCreateBucket()); Assert.assertTrue("target disableVhost should be true", s3Target.isDisableVHosts()); Assert.assertTrue("target includeVersions should be enabled", s3Target.isIncludeVersions()); Assert.assertTrue("target legacySignatures should be enabled", s3Target.isLegacySignatures()); Assert.assertTrue("target preserveDirectories should be enabled", s3Target.isPreserveDirectories());