From f1e099cb72cbed0e4e62b1728c4a00aa1c42977c Mon Sep 17 00:00:00 2001 From: kapil Date: Mon, 1 Dec 2014 12:58:17 +0530 Subject: [PATCH] Add delete-objects. Use DeleteObjectsRequest to support multi delete in single request. --- src/aws/sdk/s3.clj | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/aws/sdk/s3.clj b/src/aws/sdk/s3.clj index f9cc748..a75a7ce 100644 --- a/src/aws/sdk/s3.clj +++ b/src/aws/sdk/s3.clj @@ -43,6 +43,8 @@ com.amazonaws.services.s3.model.AbortMultipartUploadRequest com.amazonaws.services.s3.model.CompleteMultipartUploadRequest com.amazonaws.services.s3.model.UploadPartRequest + com.amazonaws.services.s3.model.DeleteObjectsRequest + com.amazonaws.services.s3.model.DeleteObjectsRequest$KeyVersion java.util.concurrent.Executors java.io.ByteArrayInputStream java.io.File @@ -447,6 +449,16 @@ [cred bucket key] (.deleteObject (s3-client cred) bucket key)) +(defn delete-objects + "Delete list of objects from an S3 bucket." + [cred bucket keys] + (let [key-versions (map (fn [key] + (DeleteObjectsRequest$KeyVersion. key)) + keys)] + (.deleteObjects (s3-client cred) + (doto (DeleteObjectsRequest. bucket) + (.setKeys key-versions))))) + (defn object-exists? "Returns true if an object exists in the supplied bucket and key." [cred bucket key]