You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ga...@apache.org on 2015/02/15 10:06:56 UTC
[3/3] jclouds git commit: JCLOUDS-144: Swift multi-blob delete
JCLOUDS-144: Swift multi-blob delete
Project: http://git-wip-us.apache.org/repos/asf/jclouds/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds/commit/c14141de
Tree: http://git-wip-us.apache.org/repos/asf/jclouds/tree/c14141de
Diff: http://git-wip-us.apache.org/repos/asf/jclouds/diff/c14141de
Branch: refs/heads/master
Commit: c14141dec356ccab598717d7a198b6eb042a38c8
Parents: ecc8548
Author: Andrew Gaul <ga...@apache.org>
Authored: Fri Feb 13 11:56:50 2015 -0800
Committer: Andrew Gaul <ga...@apache.org>
Committed: Sun Feb 15 01:06:04 2015 -0800
----------------------------------------------------------------------
.../v1/blobstore/RegionScopedSwiftBlobStore.java | 14 ++++++++++++++
1 file changed, 14 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds/blob/c14141de/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/RegionScopedSwiftBlobStore.java
----------------------------------------------------------------------
diff --git a/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/RegionScopedSwiftBlobStore.java b/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/RegionScopedSwiftBlobStore.java
index 6972b6e..3b652d8 100644
--- a/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/RegionScopedSwiftBlobStore.java
+++ b/apis/openstack-swift/src/main/java/org/jclouds/openstack/swift/v1/blobstore/RegionScopedSwiftBlobStore.java
@@ -59,6 +59,7 @@ import org.jclouds.openstack.swift.v1.blobstore.functions.ToResourceMetadata;
import org.jclouds.openstack.swift.v1.domain.Container;
import org.jclouds.openstack.swift.v1.domain.ObjectList;
import org.jclouds.openstack.swift.v1.domain.SwiftObject;
+import org.jclouds.openstack.swift.v1.features.BulkApi;
import org.jclouds.openstack.swift.v1.features.ObjectApi;
import org.jclouds.openstack.swift.v1.options.UpdateContainerOptions;
import org.jclouds.openstack.swift.v1.reference.SwiftHeaders;
@@ -73,6 +74,7 @@ import com.google.common.collect.FluentIterable;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMultimap;
import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Iterables;
import com.google.common.io.ByteSource;
import com.google.inject.AbstractModule;
import com.google.inject.Injector;
@@ -258,6 +260,18 @@ public class RegionScopedSwiftBlobStore implements BlobStore {
}
@Override
+ public void removeBlobs(String container, Iterable<String> names) {
+ BulkApi bulkApi = api.getBulkApi(regionId);
+ for (List<String> partition : Iterables.partition(names, 1000)) {
+ ImmutableList.Builder<String> builder = ImmutableList.builder();
+ for (String name : partition) {
+ builder.add(container + "/" + name);
+ }
+ bulkApi.bulkDelete(builder.build());
+ }
+ }
+
+ @Override
public BlobStoreContext getContext() {
return context;
}