List of usage examples for com.amazonaws.services.s3.model DeleteVersionRequest DeleteVersionRequest
public DeleteVersionRequest(String bucketName, String key, String versionId)
From source file:cloudExplorer.Delete.java
License:Open Source License
public void run() { AWSCredentials credentials = new BasicAWSCredentials(access_key, secret_key); AmazonS3 s3Client = new AmazonS3Client(credentials, new ClientConfiguration().withSignerOverride("S3SignerType")); s3Client.setEndpoint(endpoint);//from ww w . j a va 2 s .c om try { if (version != null) { s3Client.deleteVersion(new DeleteVersionRequest(bucket, what, version)); } else { s3Client.deleteObject(new DeleteObjectRequest(bucket, what)); } if (!debug) { NewJFrame.jTextArea1.append("\nDeleted object: " + what); } calibrate(); } catch (AmazonServiceException ase) { if (NewJFrame.gui) { mainFrame.jTextArea1.append("\n\nError Message: " + ase.getMessage()); mainFrame.jTextArea1.append("\nHTTP Status Code: " + ase.getStatusCode()); mainFrame.jTextArea1.append("\nAWS Error Code: " + ase.getErrorCode()); mainFrame.jTextArea1.append("\nError Type: " + ase.getErrorType()); mainFrame.jTextArea1.append("\nRequest ID: " + ase.getRequestId()); calibrate(); } else { System.out.print("\n\nError Message: " + ase.getMessage()); System.out.print("\nHTTP Status Code: " + ase.getStatusCode()); System.out.print("\nAWS Error Code: " + ase.getErrorCode()); System.out.print("\nError Type: " + ase.getErrorType()); System.out.print("\nRequest ID: " + ase.getRequestId()); } } catch (Exception delete) { } }
From source file:org.apache.nifi.processors.aws.s3.DeleteS3Object.java
License:Apache License
@Override public void onTrigger(final ProcessContext context, final ProcessSession session) { FlowFile flowFile = session.get();//from www . ja va 2 s . c om if (flowFile == null) { return; } final long startNanos = System.nanoTime(); final String bucket = context.getProperty(BUCKET).evaluateAttributeExpressions(flowFile).getValue(); final String key = context.getProperty(KEY).evaluateAttributeExpressions(flowFile).getValue(); final String versionId = context.getProperty(VERSION_ID).evaluateAttributeExpressions(flowFile).getValue(); final AmazonS3 s3 = getClient(); // Deletes a key on Amazon S3 try { if (versionId == null) { final DeleteObjectRequest r = new DeleteObjectRequest(bucket, key); // This call returns success if object doesn't exist s3.deleteObject(r); } else { final DeleteVersionRequest r = new DeleteVersionRequest(bucket, key, versionId); s3.deleteVersion(r); } } catch (final AmazonServiceException ase) { getLogger().error("Failed to delete S3 Object for {}; routing to failure", new Object[] { flowFile, ase }); flowFile = session.penalize(flowFile); session.transfer(flowFile, REL_FAILURE); return; } session.transfer(flowFile, REL_SUCCESS); final long transferMillis = TimeUnit.NANOSECONDS.toMillis(System.nanoTime() - startNanos); getLogger().info("Successfully delete S3 Object for {} in {} millis; routing to success", new Object[] { flowFile, transferMillis }); }
From source file:squash.deployment.lambdas.AngularjsAppCustomResourceLambda.java
License:Apache License
void deleteAngularjsApp(String websiteBucket, LambdaLogger logger) { logger.log("Removing AngularjsApp content from website versioned S3 bucket"); // We need to delete every version of every key ListVersionsRequest listVersionsRequest = new ListVersionsRequest().withBucketName(websiteBucket); VersionListing versionListing;//from www . ja v a 2s. c o m AmazonS3 client = TransferManagerBuilder.defaultTransferManager().getAmazonS3Client(); do { versionListing = client.listVersions(listVersionsRequest); versionListing.getVersionSummaries().stream().filter(k -> (k.getKey().startsWith("app"))).forEach(k -> { logger.log("About to delete version: " + k.getVersionId() + " of AngularjsApp page: " + k.getKey()); DeleteVersionRequest deleteVersionRequest = new DeleteVersionRequest(websiteBucket, k.getKey(), k.getVersionId()); client.deleteVersion(deleteVersionRequest); logger.log("Successfully deleted version: " + k.getVersionId() + " of AngularjsApp page: " + k.getKey()); }); listVersionsRequest.setKeyMarker(versionListing.getNextKeyMarker()); } while (versionListing.isTruncated()); logger.log("Finished removing AngularjsApp content from website S3 bucket"); }
From source file:squash.deployment.lambdas.ApiGatewayCustomResourceLambda.java
License:Apache License
void removeSdkFromS3(LambdaLogger logger) { logger.log("About to remove apigateway sdk from website versioned S3 bucket"); // We need to delete every version of every key ListVersionsRequest listVersionsRequest = new ListVersionsRequest().withBucketName(squashWebsiteBucket); VersionListing versionListing;// w ww .ja va 2 s . co m IS3TransferManager transferManager = getS3TransferManager(); AmazonS3 client = transferManager.getAmazonS3Client(); do { versionListing = client.listVersions(listVersionsRequest); versionListing .getVersionSummaries().stream().filter(k -> !(k.getKey().startsWith("20") || k.getKey().equals("today.html") || k.getKey().equals("bookings.html"))) .forEach(k -> { logger.log("About to delete version: " + k.getVersionId() + " of API SDK: " + k.getKey()); DeleteVersionRequest deleteVersionRequest = new DeleteVersionRequest(squashWebsiteBucket, k.getKey(), k.getVersionId()); client.deleteVersion(deleteVersionRequest); logger.log("Successfully deleted version: " + k.getVersionId() + " of API SDK key: " + k.getKey()); }); listVersionsRequest.setKeyMarker(versionListing.getNextKeyMarker()); } while (versionListing.isTruncated()); logger.log("Finished remove apigateway sdk from website S3 bucket"); }
From source file:squash.deployment.lambdas.NoScriptAppCustomResourceLambda.java
License:Apache License
/** * Implementation for the AWS Lambda function backing the NoScriptApp custom resource. * /* ww w . j ava 2 s.c o m*/ * <p>This lambda requires the following environment variables: * <ul> * <li>SimpleDBDomainName - name of the simpleDB domain for bookings and booking rules.</li> * <li>WebsiteBucket - name of S3 bucket serving the booking website.</li> * <li>ApiGatewayBaseUrl - base Url of the ApiGateway Api.</li> * <li>Region - the AWS region in which the Cloudformation stack is created.</li> * <li>Revision - integer incremented to force stack updates to update this resource.</li> * </ul> * * <p>On success, it returns the following output to Cloudformation: * <ul> * <li>WebsiteURL - Url of the website's first booking page.</li> * </ul> * * @param request request parameters as provided by the CloudFormation service * @param context context as provided by the CloudFormation service */ @Override public Object handleRequest(Map<String, Object> request, Context context) { LambdaLogger logger = context.getLogger(); logger.log("Starting NoScriptApp custom resource handleRequest"); // Handle standard request parameters Map<String, String> standardRequestParameters = LambdaInputLogger.logStandardRequestParameters(request, logger); String requestType = standardRequestParameters.get("RequestType"); // Handle required environment variables logger.log("Logging environment variables required by custom resource request"); String simpleDBDomainName = System.getenv("SimpleDBDomainName"); String websiteBucket = System.getenv("WebsiteBucket"); String apiGatewayBaseUrl = System.getenv("ApiGatewayBaseUrl"); String region = System.getenv("AWS_REGION"); String revision = System.getenv("Revision"); // Log out our required environment variables logger.log("SimpleDBDomainName: " + simpleDBDomainName); logger.log("WebsiteBucket: " + websiteBucket); logger.log("ApiGatewayBaseUrl: " + apiGatewayBaseUrl); logger.log("Region: " + region); logger.log("Revision: " + revision); // API calls below can sometimes give access denied errors during stack // creation which I think is bc required new roles have not yet propagated // across AWS. We sleep here to allow time for this propagation. try { Thread.sleep(10000); } catch (InterruptedException e) { logger.log("Sleep to allow new roles to propagate has been interrupted."); } // Prepare our response to be sent in the finally block CloudFormationResponder cloudFormationResponder = new CloudFormationResponder(standardRequestParameters, "DummyPhysicalResourceId"); // Initialise failure response, which will be changed on success String responseStatus = "FAILED"; String websiteURL = null; try { cloudFormationResponder.initialise(); if (requestType.equals("Create") || requestType.equals("Update")) { // Upload 21 initial bookings pages and index page to the S3 bucket UpdateBookingsLambdaRequest updateBookingsLambdaRequest = new UpdateBookingsLambdaRequest(); UpdateBookingsLambda updateBookingsLambda = new UpdateBookingsLambda(); UpdateBookingsLambdaResponse updateBookingsLambdaResponse = updateBookingsLambda .updateBookings(updateBookingsLambdaRequest, context); String firstDate = updateBookingsLambdaResponse.getCurrentDate(); websiteURL = "http://" + websiteBucket + ".s3-website-" + region + ".amazonaws.com?selectedDate=" + firstDate + ".html"; } else if (requestType.equals("Delete")) { logger.log("Delete request - so removing bookings pages from website versioned S3 bucket"); // We need to delete every version of every key before the bucket itself // can be deleted ListVersionsRequest listVersionsRequest = new ListVersionsRequest().withBucketName(websiteBucket); VersionListing versionListing; AmazonS3 client = TransferManagerBuilder.defaultTransferManager().getAmazonS3Client(); do { versionListing = client.listVersions(listVersionsRequest); versionListing.getVersionSummaries().stream().filter( // Maybe a bit slack, but '20' is to include e.g. 2015-10-04.html k -> (k.getKey().startsWith("20") || k.getKey().equals("today.html"))).forEach(k -> { logger.log("About to delete version: " + k.getVersionId() + " of booking page: " + k.getKey()); DeleteVersionRequest deleteVersionRequest = new DeleteVersionRequest(websiteBucket, k.getKey(), k.getVersionId()); client.deleteVersion(deleteVersionRequest); logger.log("Successfully deleted version: " + k.getVersionId() + " of booking page: " + k.getKey()); }); listVersionsRequest.setKeyMarker(versionListing.getNextKeyMarker()); } while (versionListing.isTruncated()); logger.log("Finished removing bookings pages from website S3 bucket"); } responseStatus = "SUCCESS"; return null; } catch (AmazonServiceException ase) { ExceptionUtils.logAmazonServiceException(ase, logger); return null; } catch (AmazonClientException ace) { ExceptionUtils.logAmazonClientException(ace, logger); return null; } catch (Exception e) { logger.log("Exception caught in NoScriptApp Lambda: " + e.getMessage()); return null; } finally { // Send response to CloudFormation cloudFormationResponder.addKeyValueOutputsPair("WebsiteURL", websiteURL); cloudFormationResponder.sendResponse(responseStatus, logger); } }