List of usage examples for com.amazonaws.services.s3.model DeleteObjectsRequest DeleteObjectsRequest
public DeleteObjectsRequest(String bucketName)
From source file:aws.example.s3.DeleteObjects.java
License:Open Source License
public static void main(String[] args) { final String USAGE = "\n" + "To run this example, supply the name of an S3 bucket and at least\n" + "one object name (key) to delete.\n" + "\n" + "Ex: DeleteObjects <bucketname> <objectname1> [objectname2, ...]\n"; if (args.length < 2) { System.out.println(USAGE); System.exit(1);/* www .ja v a 2s . c o m*/ } String bucket_name = args[0]; String[] object_keys = Arrays.copyOfRange(args, 1, args.length); System.out.println("Deleting objects from S3 bucket: " + bucket_name); for (String k : object_keys) { System.out.println(" * " + k); } final AmazonS3 s3 = new AmazonS3Client(); try { DeleteObjectsRequest dor = new DeleteObjectsRequest(bucket_name).withKeys(object_keys); s3.deleteObjects(dor); } catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); System.exit(1); } System.out.println("Done!"); }
From source file:awslabs.lab21.SolutionCode.java
License:Open Source License
@Override public void deleteBucket(AmazonS3 s3Client, String bucketName) { // First, try to delete the bucket. DeleteBucketRequest deleteBucketRequest = new DeleteBucketRequest(bucketName); try {/* w w w . j a v a2 s .c o m*/ s3Client.deleteBucket(deleteBucketRequest); // If we got here, no error was generated so we'll assume the bucket was deleted and return. return; } catch (AmazonS3Exception ex) { if (!ex.getErrorCode().equals("BucketNotEmpty")) { // The only other exception we're going to handle is BucketNotEmpty, so rethrow anything else. throw ex; } } // If we got here, the bucket isn't empty, so delete the contents and try again. List<KeyVersion> keys = new ArrayList<KeyVersion>(); for (S3ObjectSummary obj : s3Client.listObjects(bucketName).getObjectSummaries()) { // Add the keys to our list of object. keys.add(new KeyVersion(obj.getKey())); } // Create the request to delete the objects. DeleteObjectsRequest deleteObjectsRequest = new DeleteObjectsRequest(bucketName); deleteObjectsRequest.withKeys(keys); // Submit the delete objects request. s3Client.deleteObjects(deleteObjectsRequest); // The bucket is empty now, so attempt the delete again. s3Client.deleteBucket(deleteBucketRequest); }
From source file:ch.admin.isb.hermes5.persistence.s3.S3RemoteAdapter.java
License:Apache License
@Override public List<String> deletePath(String path) { List<String> keys = new ArrayList<String>(); ObjectListing listObjects = s3.listObjects(this.bucketName.getStringValue(), path); List<S3ObjectSummary> objectSummaries = listObjects.getObjectSummaries(); if (!objectSummaries.isEmpty()) { DeleteObjectsRequest deleteObjectsRequest = new DeleteObjectsRequest(bucketName.getStringValue()); for (S3ObjectSummary s3ObjectSummary : objectSummaries) { String key = s3ObjectSummary.getKey(); keys.add(key);/*from w ww . j a va2s .com*/ deleteObjectsRequest.getKeys().add(new KeyVersion(key)); } s3.deleteObjects(deleteObjectsRequest); } return keys; }
From source file:com.android.demo.notepad3.Util.java
License:Open Source License
public static void deleteBucket() { String name = Constants.BUCKET_NAME.toLowerCase(Locale.US); List<S3ObjectSummary> objData = sS3Client.listObjects(name).getObjectSummaries(); if (objData.size() > 0) { DeleteObjectsRequest emptyBucket = new DeleteObjectsRequest(name); List<KeyVersion> keyList = new ArrayList<KeyVersion>(); for (S3ObjectSummary summary : objData) { keyList.add(new KeyVersion(summary.getKey())); }/* w w w . ja va2 s. c o m*/ emptyBucket.withKeys(keyList); sS3Client.deleteObjects(emptyBucket); } sS3Client.deleteBucket(name); }
From source file:com.davidsoergel.s3napback.S3ops.java
License:Apache License
public static void delete(TransferManager tx, String bucket, String fileprefix) throws InterruptedException { logger.info("Deleting " + fileprefix); List<DeleteObjectsRequest.KeyVersion> keys = new ArrayList<DeleteObjectsRequest.KeyVersion>(); ObjectListing objectListing = tx.getAmazonS3Client() .listObjects(new ListObjectsRequest().withBucketName(bucket).withPrefix(fileprefix)); for (S3ObjectSummary objectSummary : objectListing.getObjectSummaries()) { keys.add(new DeleteObjectsRequest.KeyVersion(objectSummary.getKey())); }/*from w ww.ja v a 2 s. co m*/ DeleteObjectsRequest req = new DeleteObjectsRequest(bucket); req.setKeys(keys); DeleteObjectsResult result = tx.getAmazonS3Client().deleteObjects(req); }
From source file:com.dss.sframework.tools.amazon.AmazonUtil.java
License:Open Source License
public static void deleteBucket() { String name = ConstantAmazon.BUCKET_NAME.toLowerCase(Locale.US); List<S3ObjectSummary> objData = sS3Client.listObjects(name).getObjectSummaries(); if (objData.size() > 0) { DeleteObjectsRequest emptyBucket = new DeleteObjectsRequest(name); List<KeyVersion> keyList = new ArrayList<>(); for (S3ObjectSummary summary : objData) { keyList.add(new KeyVersion(summary.getKey())); }/*from w ww .j a v a2 s. c o m*/ emptyBucket.withKeys(keyList); sS3Client.deleteObjects(emptyBucket); } sS3Client.deleteBucket(name); }
From source file:com.easarrive.aws.plugins.common.service.impl.S3Service.java
License:Open Source License
/** * {@inheritDoc}/*from www .ja v a2 s . co m*/ */ @Override public DeleteObjectsResult deleteObjects(AmazonS3 client, String bucketName, List<String> keyList) { if (client == null) { return null; } else if (StringUtil.isEmpty(bucketName)) { return null; } else if (keyList == null || keyList.size() < 1) { return null; } DeleteObjectsRequest deleteObjectsRequest = new DeleteObjectsRequest(bucketName); List<KeyVersion> keys = new ArrayList<KeyVersion>(); for (String key : keyList) { KeyVersion keyVersion = new KeyVersion(key); keys.add(keyVersion); } deleteObjectsRequest.setKeys(keys); DeleteObjectsResult result = client.deleteObjects(deleteObjectsRequest); return result; }
From source file:com.easarrive.aws.plugins.common.service.impl.S3Service.java
License:Open Source License
/** * {@inheritDoc}/*from w w w . ja va 2 s . co m*/ */ public DeleteObjectsResult deleteObjects2(AmazonS3 client, String bucketName, List<KeyVersion> keyList) { if (client == null) { return null; } else if (StringUtil.isEmpty(bucketName)) { return null; } else if (keyList == null || keyList.size() < 1) { return null; } DeleteObjectsRequest deleteObjectsRequest = new DeleteObjectsRequest(bucketName); deleteObjectsRequest.setKeys(keyList); DeleteObjectsResult result = client.deleteObjects(deleteObjectsRequest); return result; }
From source file:com.emc.ecs.sync.target.S3Target.java
License:Open Source License
@Override public void filter(SyncObject obj) { try {/*from ww w .ja v a 2 s.co m*/ // skip the root of the bucket since it obviously exists if ("".equals(rootKey + obj.getRelativePath())) { log.debug("Target is bucket root; skipping"); return; } // some sync objects lazy-load their metadata (i.e. AtmosSyncObject) // since this may be a timed operation, ensure it loads outside of other timed operations if (!(obj instanceof S3ObjectVersion) || !((S3ObjectVersion) obj).isDeleteMarker()) obj.getMetadata(); // Compute target key String targetKey = getTargetKey(obj); obj.setTargetIdentifier(AwsS3Util.fullPath(bucketName, targetKey)); if (includeVersions) { ListIterator<S3ObjectVersion> sourceVersions = s3Source.versionIterator((S3SyncObject) obj); ListIterator<S3ObjectVersion> targetVersions = versionIterator(obj); boolean newVersions = false, replaceVersions = false; if (force) { replaceVersions = true; } else { // special workaround for bug where objects are listed, but they have no versions if (sourceVersions.hasNext()) { // check count and etag/delete-marker to compare version chain while (sourceVersions.hasNext()) { S3ObjectVersion sourceVersion = sourceVersions.next(); if (targetVersions.hasNext()) { S3ObjectVersion targetVersion = targetVersions.next(); if (sourceVersion.isDeleteMarker()) { if (!targetVersion.isDeleteMarker()) replaceVersions = true; } else { if (targetVersion.isDeleteMarker()) replaceVersions = true; else if (!sourceVersion.getETag().equals(targetVersion.getETag())) replaceVersions = true; // different checksum } } else if (!replaceVersions) { // source has new versions, but existing target versions are ok newVersions = true; sourceVersions.previous(); // back up one putIntermediateVersions(sourceVersions, targetKey); // add any new intermediary versions (current is added below) } } if (targetVersions.hasNext()) replaceVersions = true; // target has more versions if (!newVersions && !replaceVersions) { log.info("Source and target versions are the same. Skipping {}", obj.getRelativePath()); return; } } } // something's off; must delete all versions of the object if (replaceVersions) { log.info( "[{}]: version history differs between source and target; re-placing target version history with that from source.", obj.getRelativePath()); // collect versions in target List<DeleteObjectsRequest.KeyVersion> deleteVersions = new ArrayList<>(); while (targetVersions.hasNext()) targetVersions.next(); // move cursor to end while (targetVersions.hasPrevious()) { // go in reverse order S3ObjectVersion version = targetVersions.previous(); deleteVersions.add(new DeleteObjectsRequest.KeyVersion(targetKey, version.getVersionId())); } // batch delete all versions in target log.debug("[{}]: deleting all versions in target", obj.getRelativePath()); s3.deleteObjects(new DeleteObjectsRequest(bucketName).withKeys(deleteVersions)); // replay version history in target while (sourceVersions.hasPrevious()) sourceVersions.previous(); // move cursor to beginning putIntermediateVersions(sourceVersions, targetKey); } } else { // normal sync (no versions) Date sourceLastModified = obj.getMetadata().getModificationTime(); long sourceSize = obj.getMetadata().getContentLength(); // Get target metadata. ObjectMetadata destMeta = null; try { destMeta = s3.getObjectMetadata(bucketName, targetKey); } catch (AmazonS3Exception e) { if (e.getStatusCode() != 404) throw new RuntimeException("Failed to check target key '" + targetKey + "' : " + e, e); } if (!force && obj.getFailureCount() == 0 && destMeta != null) { // Check overwrite Date destLastModified = destMeta.getLastModified(); long destSize = destMeta.getContentLength(); if (destLastModified.equals(sourceLastModified) && sourceSize == destSize) { log.info("Source and target the same. Skipping {}", obj.getRelativePath()); return; } if (destLastModified.after(sourceLastModified)) { log.info("Target newer than source. Skipping {}", obj.getRelativePath()); return; } } } // at this point we know we are going to write the object // Put [current object version] if (obj instanceof S3ObjectVersion && ((S3ObjectVersion) obj).isDeleteMarker()) { // object has version history, but is currently deleted log.debug("[{}]: deleting object in target to replicate delete marker in source.", obj.getRelativePath()); s3.deleteObject(bucketName, targetKey); } else { putObject(obj, targetKey); // if object has new metadata after the stream (i.e. encryption checksum), we must update S3 again if (obj.requiresPostStreamMetadataUpdate()) { log.debug("[{}]: updating metadata after sync as required", obj.getRelativePath()); CopyObjectRequest cReq = new CopyObjectRequest(bucketName, targetKey, bucketName, targetKey); cReq.setNewObjectMetadata(AwsS3Util.s3MetaFromSyncMeta(obj.getMetadata())); s3.copyObject(cReq); } } } catch (Exception e) { throw new RuntimeException("Failed to store object: " + e, e); } }
From source file:com.github.abhinavmishra14.aws.s3.service.impl.AwsS3IamServiceImpl.java
License:Open Source License
@Override public DeleteObjectsResult deleteObjects(final String bucketName, final List<KeyVersion> keys) throws AmazonClientException, AmazonServiceException { LOGGER.info("deleteObjects invoked, bucketName: {}, keys: {}", bucketName, keys); final DeleteObjectsRequest deleteObjReq = new DeleteObjectsRequest(bucketName); deleteObjReq.setKeys(keys);/*from www . j a v a 2s. co m*/ return s3client.deleteObjects(deleteObjReq); }