List of usage examples for com.amazonaws.services.s3 AmazonS3Client AmazonS3Client
@SdkInternalApi AmazonS3Client(AmazonS3ClientParams s3ClientParams)
From source file:S3Sample.java
License:Open Source License
public static void main(String[] args) throws IOException { // s3/* w ww . j ava2s . co m*/ String imageBucketName = "ringtone_image"; String ringBucketName = "ringtone_ring"; AmazonS3 s3 = new AmazonS3Client( new PropertiesCredentials(S3Sample.class.getResourceAsStream("AwsCredentials.properties"))); String bucketName; System.out.println("Start Sending Files To Amazon S3"); // directory and files String pathName = "/home/liutao/workspace/python/1-fetch/download_Holiday/"; File dir = new File(pathName); File list[] = dir.listFiles(); String fileName; // sort by record index Arrays.sort(list, new Comparator<File>() { public int compare(File f1, File f2) { String s1 = f1.getName(); String s2 = f2.getName(); int idx1 = s1.indexOf(".xml"); int idx2 = s2.indexOf(".xml"); if (idx1 != -1 && idx2 != -1) { int num1 = Integer.parseInt(s1.substring(s1.indexOf('d') + 1, idx1)); int num2 = Integer.parseInt(s2.substring(s2.indexOf('d') + 1, idx2)); return num1 - num2; } else if (idx1 == -1) return -1; else return 1; } }); // xml parser DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); InputStream in; // String uuid; String key; URL url; int i = 0, j; try { DocumentBuilder docBuilder = factory.newDocumentBuilder(); FileWriter log = new FileWriter(pathName + "log"); while (i < list.length) { if (list[i].getName().endsWith(".xml")) break; i++; } // start process xml file for (; i < list.length; i++) { System.out.println(list[i].getName()); log.write(list[i].getName() + ","); try { in = new FileInputStream(pathName + list[i].getName()); Document doc = docBuilder.parse(in); org.w3c.dom.Element root = doc.getDocumentElement(); //System.out.println(root.getNodeName()); NodeList childen = root.getChildNodes(); org.w3c.dom.Node curNode, node; uuid = UUID.randomUUID().toString(); for (j = 0; j < childen.getLength(); j++) { curNode = childen.item(j); if (curNode.getNodeType() == Node.ELEMENT_NODE) if (curNode.getNodeName().equals("Ring") || curNode.getNodeName().equals("Image")) { //System.out.println(curNode.getFirstChild().getNodeValue()); fileName = curNode.getFirstChild().getNodeValue(); File file = new File(pathName + fileName); if (!file.exists()) { log.write(fileName + " not Found!\n"); break; } key = uuid + fileName; //bucketName = curNode.getNodeName().equals("Ring")?ringBucketName:imageBucketName; bucketName = "ringtone_test_2010"; try { s3.putObject(new PutObjectRequest(bucketName, key, file)); // s3.setObjectAcl(bucketName, key, CannedAccessControlList.PublicRead); // ?? // url = s3.generatePresignedUrl(bucketName, key, expireDate); // System.out.println(url); } catch (AmazonServiceException ase) { log.write("AmazonServiceException\n"); } catch (AmazonClientException ace) { log.write("AmazonClientException\n"); } } } if (j == childen.getLength()) {// if success, record it log.write("uuid:" + uuid + "\n"); } } catch (FileNotFoundException e) { log.write("FileNotFound\n"); } catch (SAXException e) { log.write("xml parse error\n"); } catch (IOException e) { log.write("IOexception\n"); } } log.flush(); log.close(); } catch (ParserConfigurationException e) { e.printStackTrace(); } System.out.println("Sending Finished!"); }
From source file:S3Sample.java
License:Open Source License
public static void main2(String[] args) throws IOException { /*//from ww w.ja va 2 s .c o m * Important: Be sure to fill in your AWS access credentials in the * AwsCredentials.properties file before you try to run this * sample. * http://aws.amazon.com/security-credentials */ AmazonS3 s3 = new AmazonS3Client( new PropertiesCredentials(S3Sample.class.getResourceAsStream("AwsCredentials.properties"))); //String bucketName = "my-first-s3-bucket-" + UUID.randomUUID(); String bucketName = "ringtone_image"; String key = "test"; System.out.println("being..."); System.out.println("size:"); System.out.println("end.\n"); try { /* * Create a new S3 bucket - Amazon S3 bucket names are globally unique, * so once a bucket name has been taken by any user, you can't create * another bucket with that same name. * * You can optionally specify a location for your bucket if you want to * keep your data closer to your applications or users. System.out.println("Creating bucket " + bucketName + "\n"); s3.createBucket(bucketName); */ /* * List the buckets in your account System.out.println("Listing buckets"); for (Bucket bucket : s3.listBuckets()) { System.out.println(" - " + bucket.getName()); } System.out.println(); */ /* * Upload an object to your bucket - You can easily upload a file to * S3, or upload directly an InputStream if you know the length of * the data in the stream. You can also specify your own metadata * when uploading to S3, which allows you set a variety of options * like content-type and content-encoding, plus additional metadata * specific to your applications. System.out.println("Uploading a new object to S3 from a file\n"); s3.putObject(new PutObjectRequest(bucketName, key, createSampleFile())); */ /* * Download an object - When you download an object, you get all of * the object's metadata and a stream from which to read the contents. * It's important to read the contents of the stream as quickly as * possibly since the data is streamed directly from Amazon S3 and your * network connection will remain open until you read all the data or * close the input stream. * * GetObjectRequest also supports several other options, including * conditional downloading of objects based on modification times, * ETags, and selectively downloading a range of an object. System.out.println("Downloading an object"); S3Object object = s3.getObject(new GetObjectRequest(bucketName, key)); System.out.println("Content-Type: " + object.getObjectMetadata().getContentType()); displayTextInputStream(object.getObjectContent()); */ /* * List objects in your bucket by prefix - There are many options for * listing the objects in your bucket. Keep in mind that buckets with * many objects might truncate their results when listing their objects, * so be sure to check if the returned object listing is truncated, and * use the AmazonS3.listNextBatchOfObjects(...) operation to retrieve * additional results. System.out.println("Listing objects"); ObjectListing objectListing = s3.listObjects(new ListObjectsRequest() .withBucketName(bucketName) .withPrefix("My")); for (S3ObjectSummary objectSummary : objectListing.getObjectSummaries()) { System.out.println(" - " + objectSummary.getKey() + " " + "(size = " + objectSummary.getSize() + ")"); } */ /* * Delete an object - Unless versioning has been turned on for your bucket, * there is no way to undelete an object, so use caution when deleting objects. System.out.println("Deleting an object\n"); s3.deleteObject(bucketName, key); */ /* * Delete a bucket - A bucket must be completely empty before it can be * deleted, so remember to delete any objects from your buckets before * you try to delete them. System.out.println("Deleting bucket " + bucketName + "\n"); s3.deleteBucket(bucketName); */ } catch (AmazonServiceException ase) { System.out.println("Caught an AmazonServiceException, which means your request made it " + "to Amazon S3, but was rejected with an error response for some reason."); System.out.println("Error Message: " + ase.getMessage()); System.out.println("HTTP Status Code: " + ase.getStatusCode()); System.out.println("AWS Error Code: " + ase.getErrorCode()); System.out.println("Error Type: " + ase.getErrorType()); System.out.println("Request ID: " + ase.getRequestId()); } catch (AmazonClientException ace) { System.out.println("Caught an AmazonClientException, which means the client encountered " + "a serious internal problem while trying to communicate with S3, " + "such as not being able to access the network."); System.out.println("Error Message: " + ace.getMessage()); } }
From source file:AwsSdkSample.java
License:Open Source License
/** * The only information needed to create a client are security credentials - * your AWS Access Key ID and Secret Access Key. All other * configuration, such as the service endpoints have defaults provided. * * Additional client parameters, such as proxy configuration, can be specified * in an optional ClientConfiguration object when constructing a client. * * @see com.amazonaws.auth.BasicAWSCredentials * @see com.amazonaws.auth.PropertiesCredentials * @see com.amazonaws.ClientConfiguration *///from w w w .ja va2 s.co m private static void init() throws Exception { /* * ProfileCredentialsProvider loads AWS security credentials from a * .aws/config file in your home directory. * * These same credentials are used when working with other AWS SDKs and the AWS CLI. * * You can find more information on the AWS profiles config file here: * http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html */ File configFile = new File(System.getProperty("user.home"), ".aws/credentials"); AWSCredentialsProvider credentialsProvider = new ProfileCredentialsProvider( new ProfilesConfigFile(configFile), "default"); if (credentialsProvider.getCredentials() == null) { throw new RuntimeException("No AWS security credentials found:\n" + "Make sure you've configured your credentials in: " + configFile.getAbsolutePath() + "\n" + "For more information on configuring your credentials, see " + "http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html"); } ec2 = new AmazonEC2Client(credentialsProvider); s3 = new AmazonS3Client(credentialsProvider); }
From source file:BackupManager.java
License:Open Source License
public static void main(String[] args) throws IOException { AmazonS3 s3 = new AmazonS3Client( new PropertiesCredentials(BackupManager.class.getResourceAsStream("AwsCredentials.properties"))); String bucketName = "my-first-s3-bucket-" + UUID.randomUUID(); String key = "MyObjectKey"; System.out.println("==========================================="); System.out.println("Getting Started with Amazon S3"); System.out.println("===========================================\n"); try {// ww w . jav a 2 s. c o m /* * Create a new S3 bucket - Amazon S3 bucket names are globally unique, * so once a bucket name has been taken by any user, you can't create * another bucket with that same name. * * You can optionally specify a location for your bucket if you want to * keep your data closer to your applications or users. */ System.out.println("Creating bucket " + bucketName + "\n"); s3.createBucket(bucketName); /* * List the buckets in your account */ System.out.println("Listing buckets"); for (Bucket bucket : s3.listBuckets()) { System.out.println(" - " + bucket.getName()); } System.out.println(); /* * Upload an object to your bucket - You can easily upload a file to * S3, or upload directly an InputStream if you know the length of * the data in the stream. You can also specify your own metadata * when uploading to S3, which allows you set a variety of options * like content-type and content-encoding, plus additional metadata * specific to your applications. */ System.out.println("Uploading a new object to S3 from a file\n"); s3.putObject(new PutObjectRequest(bucketName, key, createSampleFile())); /* * Download an object - When you download an object, you get all of * the object's metadata and a stream from which to read the contents. * It's important to read the contents of the stream as quickly as * possibly since the data is streamed directly from Amazon S3 and your * network connection will remain open until you read all the data or * close the input stream. * * GetObjectRequest also supports several other options, including * conditional downloading of objects based on modification times, * ETags, and selectively downloading a range of an object. */ System.out.println("Downloading an object"); S3Object object = s3.getObject(new GetObjectRequest(bucketName, key)); System.out.println("Content-Type: " + object.getObjectMetadata().getContentType()); displayTextInputStream(object.getObjectContent()); /* * List objects in your bucket by prefix - There are many options for * listing the objects in your bucket. Keep in mind that buckets with * many objects might truncate their results when listing their objects, * so be sure to check if the returned object listing is truncated, and * use the AmazonS3.listNextBatchOfObjects(...) operation to retrieve * additional results. */ System.out.println("Listing objects"); ObjectListing objectListing = s3 .listObjects(new ListObjectsRequest().withBucketName(bucketName).withPrefix("My")); for (S3ObjectSummary objectSummary : objectListing.getObjectSummaries()) { System.out.println( " - " + objectSummary.getKey() + " " + "(size = " + objectSummary.getSize() + ")"); } System.out.println(); /* * Delete an object - Unless versioning has been turned on for your bucket, * there is no way to undelete an object, so use caution when deleting objects. */ System.out.println("Deleting an object\n"); s3.deleteObject(bucketName, key); /* * Delete a bucket - A bucket must be completely empty before it can be * deleted, so remember to delete any objects from your buckets before * you try to delete them. */ System.out.println("Deleting bucket " + bucketName + "\n"); s3.deleteBucket(bucketName); } catch (AmazonServiceException ase) { System.out.println("Caught an AmazonServiceException, which means your request made it " + "to Amazon S3, but was rejected with an error response for some reason."); System.out.println("Error Message: " + ase.getMessage()); System.out.println("HTTP Status Code: " + ase.getStatusCode()); System.out.println("AWS Error Code: " + ase.getErrorCode()); System.out.println("Error Type: " + ase.getErrorType()); System.out.println("Request ID: " + ase.getRequestId()); } catch (AmazonClientException ace) { System.out.println("Caught an AmazonClientException, which means the client encountered " + "a serious internal problem while trying to communicate with S3, " + "such as not being able to access the network."); System.out.println("Error Message: " + ace.getMessage()); } }
From source file:PutTestFile.java
License:Apache License
public static void main(String[] args) throws IOException { /*/*from w ww.jav a 2 s . c om*/ * Important: Be sure to fill in your AWS access credentials in the * AwsCredentials.properties file before you try to run this sample. * http://aws.amazon.com/security-credentials */ AmazonS3 s3 = new AmazonS3Client(new PropertiesCredentials( PutTestFile.class.getResourceAsStream("AwsCredentials.properties"))); String bucketName = "dtccTest"; String key = "largerfile.txt"; System.out.println("==========================================="); System.out.println("Getting Started with Amazon S3"); System.out.println("===========================================\n"); try { /* * List the buckets in your account */ System.out.println("Listing buckets"); for (Bucket bucket : s3.listBuckets()) { System.out.println(" - " + bucket.getName()); } System.out.println(); System.out.println("Uploading a new object to S3 from a file\n"); PutObjectRequest request = new PutObjectRequest(bucketName, key, createSampleFile()); request.setCannedAcl(CannedAccessControlList.PublicRead); s3.putObject(request); } catch (AmazonServiceException ase) { System.out.println("Caught an AmazonServiceException, whichmeans your request made it " + "to Amazon S3, but was rejected with an errorresponse for some reason."); System.out.println("Error Message: " + ase.getMessage()); System.out.println("HTTP Status Code: " + ase.getStatusCode()); System.out.println("AWS Error Code: " + ase.getErrorCode()); System.out.println("Error Type: " + ase.getErrorType()); System.out.println("Request ID: " + ase.getRequestId()); } catch (AmazonClientException ace) { System.out.println("Caught an AmazonClientException, whichmeans the client encountered " + "a serious internal problem while trying tocommunicate with S3, " + "such as not being able to access the network."); System.out.println("Error Message: " + ace.getMessage()); } }
From source file:EBS_S3.java
License:Open Source License
public static void main(String[] args) throws Exception { AWSCredentials credentials = new PropertiesCredentials( EBS_S3.class.getResourceAsStream("AwsCredentials.properties")); /********************************************* * #1 Create Amazon Client object//w ww . ja va2s . co m **********************************************/ ec2 = new AmazonEC2Client(credentials); // We assume that we've already created an instance. Use the id of the instance. String instanceId = "i-278afe40"; //put your own instance id to test this code. try { /********************************************* * #2.1 Create a volume *********************************************/ // release System.out.println(ec2.describeVolumes()); List<Volume> v_list = ec2.describeVolumes().getVolumes(); System.out.println("Volume size: " + v_list.size()); DeleteVolumeRequest rq; for (Volume v : v_list) { if (v.getVolumeId().compareTo("vol-343dd879") != 0) { rq = new DeleteVolumeRequest(v.getVolumeId()); ec2.deleteVolume(rq); } } System.out.println(ec2.describeVolumes()); System.out.println("Volume size: " + v_list.size()); //create a volume System.out.println("2.1 Create a volume"); CreateVolumeRequest cvr = new CreateVolumeRequest(); cvr.setAvailabilityZone("us-east-1b"); cvr.setSize(10); //size = 10 gigabytes CreateVolumeResult volumeResult = ec2.createVolume(cvr); String createdVolumeId = volumeResult.getVolume().getVolumeId(); System.out.println("Created Volume ID: " + createdVolumeId); /********************************************* * #2.2 Attach the volume to the instance *********************************************/ System.out.println("2.2 Attach the volume to the instance"); Thread.sleep(30000); AttachVolumeRequest avr = new AttachVolumeRequest(); avr.setVolumeId(createdVolumeId); avr.setInstanceId(instanceId); avr.setDevice("/dev/sdf"); ec2.attachVolume(avr); /********************************************* * #2.3 Detach the volume from the instance *********************************************/ System.out.println("2.3 Detach the volume from the instance"); DetachVolumeRequest dvr = new DetachVolumeRequest(); dvr.setVolumeId(createdVolumeId); dvr.setInstanceId(instanceId); ec2.detachVolume(dvr); /************************************************ * #3 S3 bucket and object ***************************************************/ System.out.println("3 S3 bucket and object"); s3 = new AmazonS3Client(credentials); //create bucket String bucketName = "cloud-xiangyao-bucket"; s3.createBucket(bucketName); //set key String key = "object-name.txt"; //set value File file = File.createTempFile("temp", ".txt"); file.deleteOnExit(); Writer writer = new OutputStreamWriter(new FileOutputStream(file)); writer.write("This is a sample sentence.\r\nYes!"); writer.close(); //put object - bucket, key, value(file) s3.putObject(new PutObjectRequest(bucketName, key, file)); //get object S3Object object = s3.getObject(new GetObjectRequest(bucketName, key)); BufferedReader reader = new BufferedReader(new InputStreamReader(object.getObjectContent())); String data = null; while ((data = reader.readLine()) != null) { System.out.println(data); } /********************************************* * #4 shutdown client object *********************************************/ System.out.println("4 shutdown client object"); ec2.shutdown(); s3.shutdown(); } catch (AmazonServiceException ase) { System.out.println("Caught Exception: " + ase.getMessage()); System.out.println("Reponse Status Code: " + ase.getStatusCode()); System.out.println("Error Code: " + ase.getErrorCode()); System.out.println("Request ID: " + ase.getRequestId()); } }
From source file:AwsConsoleApp.java
License:Open Source License
/** * The only information needed to create a client are security credentials * consisting of the AWS Access Key ID and Secret Access Key. All other * configuration, such as the service endpoints, are performed * automatically. Client parameters, such as proxies, can be specified in an * optional ClientConfiguration object when constructing a client. * * @see com.amazonaws.auth.BasicAWSCredentials * @see com.amazonaws.auth.PropertiesCredentials * @see com.amazonaws.ClientConfiguration *//*from ww w .j ava 2s. c o m*/ private static void init() throws Exception { AWSCredentials credentials = new PropertiesCredentials( AwsConsoleApp.class.getResourceAsStream("AwsCredentials.properties")); ec2 = new AmazonEC2Client(credentials); s3 = new AmazonS3Client(credentials); sdb = new AmazonSimpleDBClient(credentials); }
From source file:S3Sample.java
License:Open Source License
public static void main(String[] args) throws IOException { /*//from w w w .j a va 2 s . c o m * Important: Be sure to fill in your AWS access credentials in the * AwsCredentials.properties file before you try to run this * sample. * http://aws.amazon.com/security-credentials */ AmazonS3 s3 = new AmazonS3Client( new PropertiesCredentials(S3Sample.class.getResourceAsStream("AwsCredentials.properties"))); String bucketName = "my-first-s3-bucket-" + UUID.randomUUID(); String key = "MyObjectKey"; System.out.println("==========================================="); System.out.println("Getting Started with Amazon S3"); System.out.println("===========================================\n"); try { /* * Create a new S3 bucket - Amazon S3 bucket names are globally unique, * so once a bucket name has been taken by any user, you can't create * another bucket with that same name. * * You can optionally specify a location for your bucket if you want to * keep your data closer to your applications or users. */ System.out.println("Creating bucket " + bucketName + "\n"); s3.createBucket(bucketName); /* * List the buckets in your account */ System.out.println("Listing buckets"); for (Bucket bucket : s3.listBuckets()) { System.out.println(" - " + bucket.getName()); } System.out.println(); /* * Upload an object to your bucket - You can easily upload a file to * S3, or upload directly an InputStream if you know the length of * the data in the stream. You can also specify your own metadata * when uploading to S3, which allows you set a variety of options * like content-type and content-encoding, plus additional metadata * specific to your applications. */ System.out.println("Uploading a new object to S3 from a file\n"); s3.putObject(new PutObjectRequest(bucketName, key, createSampleFile())); /* * Download an object - When you download an object, you get all of * the object's metadata and a stream from which to read the contents. * It's important to read the contents of the stream as quickly as * possibly since the data is streamed directly from Amazon S3 and your * network connection will remain open until you read all the data or * close the input stream. * * GetObjectRequest also supports several other options, including * conditional downloading of objects based on modification times, * ETags, and selectively downloading a range of an object. */ System.out.println("Downloading an object"); S3Object object = s3.getObject(new GetObjectRequest(bucketName, key)); System.out.println("Content-Type: " + object.getObjectMetadata().getContentType()); displayTextInputStream(object.getObjectContent()); /* * List objects in your bucket by prefix - There are many options for * listing the objects in your bucket. Keep in mind that buckets with * many objects might truncate their results when listing their objects, * so be sure to check if the returned object listing is truncated, and * use the AmazonS3.listNextBatchOfObjects(...) operation to retrieve * additional results. */ System.out.println("Listing objects"); ObjectListing objectListing = s3 .listObjects(new ListObjectsRequest().withBucketName(bucketName).withPrefix("My")); for (S3ObjectSummary objectSummary : objectListing.getObjectSummaries()) { System.out.println( " - " + objectSummary.getKey() + " " + "(size = " + objectSummary.getSize() + ")"); } System.out.println(); /* * Delete an object - Unless versioning has been turned on for your bucket, * there is no way to undelete an object, so use caution when deleting objects. */ System.out.println("Deleting an object\n"); s3.deleteObject(bucketName, key); /* * Delete a bucket - A bucket must be completely empty before it can be * deleted, so remember to delete any objects from your buckets before * you try to delete them. */ System.out.println("Deleting bucket " + bucketName + "\n"); s3.deleteBucket(bucketName); } catch (AmazonServiceException ase) { System.out.println("Caught an AmazonServiceException, which means your request made it " + "to Amazon S3, but was rejected with an error response for some reason."); System.out.println("Error Message: " + ase.getMessage()); System.out.println("HTTP Status Code: " + ase.getStatusCode()); System.out.println("AWS Error Code: " + ase.getErrorCode()); System.out.println("Error Type: " + ase.getErrorType()); System.out.println("Request ID: " + ase.getRequestId()); } catch (AmazonClientException ace) { System.out.println("Caught an AmazonClientException, which means the client encountered " + "a serious internal problem while trying to communicate with S3, " + "such as not being able to access the network."); System.out.println("Error Message: " + ace.getMessage()); } }
From source file:HW1.java
License:Open Source License
public static void main(String[] args) throws Exception { AWSCredentials credentials = new PropertiesCredentials( HW1.class.getResourceAsStream("AwsCredentials.properties")); /********************************************* * /*from ww w .ja va 2 s .c o m*/ * #1 Create Amazon Client object * *********************************************/ System.out.println("#1 Create Amazon Client object"); ec2 = new AmazonEC2Client(credentials); ec2.setEndpoint("https://us-east-1.ec2.amazonaws.com"); System.out.println("Please enter required group name and key name... (consider them to be the same)"); Scanner scan = new Scanner(System.in); final String keyGroupName = scan.nextLine(); /* create security group */ CreateSecurityGroupRequest createSecurityGroupRequest = new CreateSecurityGroupRequest(); createSecurityGroupRequest.withGroupName(keyGroupName).withDescription("My Java Security Group"); CreateSecurityGroupResult createSecurityGroupResult = ec2.createSecurityGroup(createSecurityGroupRequest); /* set ip settings */ IpPermission ipPermission = new IpPermission(); /* authorize tcp, ssh 22 */ ipPermission.withIpRanges("0.0.0.0/0").withIpProtocol("tcp").withFromPort(22) /* authorize http 80 */ .withToPort(80); AuthorizeSecurityGroupIngressRequest authorizeSecurityGroupIngressRequest = new AuthorizeSecurityGroupIngressRequest(); authorizeSecurityGroupIngressRequest.withGroupName(keyGroupName).withIpPermissions(ipPermission); ec2.authorizeSecurityGroupIngress(authorizeSecurityGroupIngressRequest); /* create key pair */ CreateKeyPairRequest createKeyPairRequest = new CreateKeyPairRequest(); createKeyPairRequest.withKeyName(keyGroupName); CreateKeyPairResult createKeyPairResult = ec2.createKeyPair(createKeyPairRequest); KeyPair keyPair = new KeyPair(); keyPair = createKeyPairResult.getKeyPair(); String privateKey = keyPair.getKeyMaterial(); PrintWriter file = new PrintWriter("/Users/will/.ssh/" + keyGroupName + ".pem"); file.print(privateKey); file.close(); Runtime.getRuntime().exec("chmod 400 /Users/will/.ssh/" + keyGroupName + ".pem"); try { /********************************************* * * #2 Create two Instances * *********************************************/ System.out.println(); System.out.println("#2 Create two new Instances"); int ready_num = 0; String insDNS1 = new String(); String insDNS2 = new String(); String insId1 = new String(); String insId2 = new String(); String insZone1 = new String(); String insZone2 = new String(); String imageId = "ami-76f0061f"; //Basic 32-bit Amazon Linux AMI int minInstanceCount = 2; // create 2 instance int maxInstanceCount = 2; /* create instances */ RunInstancesRequest rir = new RunInstancesRequest(imageId, minInstanceCount, maxInstanceCount); rir.withKeyName(keyGroupName).withSecurityGroups(keyGroupName); ec2.runInstances(rir); /* waiting for instance to start */ System.out.println("Created instance, wait for pending..."); DescribeInstancesResult describeInstancesRequest; List<Reservation> reservations; List<Instance> allInstances = new ArrayList<Instance>(); while (ready_num < 2) { describeInstancesRequest = ec2.describeInstances(); reservations = describeInstancesRequest.getReservations(); for (Reservation reservation : reservations) { for (Instance ins : reservation.getInstances()) { if (ins.getState().getName().compareTo("running") == 0 && ins.getPublicIpAddress() != null) { if (allInstances.size() == 0 || (allInstances.size() > 0 && allInstances.get(0).getInstanceId().compareTo(ins.getInstanceId()) != 0)) { ready_num++; allInstances.add(ins); } } } } } System.out.println("You have " + allInstances.size() + " Amazon EC2 instance(s)."); insId1 = allInstances.get(0).getInstanceId(); insId2 = allInstances.get(1).getInstanceId(); insDNS1 = allInstances.get(0).getPublicIpAddress(); insDNS2 = allInstances.get(1).getPublicIpAddress(); insZone1 = allInstances.get(0).getPlacement().getAvailabilityZone(); insZone2 = allInstances.get(1).getPlacement().getAvailabilityZone(); for (Instance ins : allInstances) { System.out.println("New instance has been created: " + ins.getInstanceId()); } System.out.println("Both instances are running now:"); System.out.println("Instance id1: " + insId1); System.out.println("IP: " + insDNS1); System.out.println("Zone: " + insZone1); System.out.println("Instance id1: " + insId2); System.out.println("IP: " + insDNS2); System.out.println("Zone: " + insZone2); System.out.println(); /********************************************* * #3 Check OR Create two volumes *********************************************/ System.out.println(); System.out.println("#3 Create volumes"); String volume_name1 = createVolume(insZone1, null); String volume_name2 = createVolume(insZone2, null); /********************************************* * #4 Attach the volume to the instance *********************************************/ System.out.println(); System.out.println("#4 Attach the volume to the instance"); System.out.println("Wait for volumes to be available..."); Thread.sleep(20000); /* attach instances to existing volume */ attachVolume(insId1, volume_name1); attachVolume(insId2, volume_name2); /************************************************ * #5 S3 bucket and object ***************************************************/ System.out.println(); System.out.println("#5 S3 bucket and object"); s3 = new AmazonS3Client(credentials); /* create bucket */ String bucketName = "cloud-hw1-bucket"; s3.createBucket(bucketName); /* set key */ String key = "object-hw1.txt"; /* set value */ File new_file = File.createTempFile("temp", ".txt"); new_file.deleteOnExit(); Writer writer = new OutputStreamWriter(new FileOutputStream(new_file)); writer.write("This is the file stored on the S3 storage on the first day!!!."); writer.close(); /* put object - bucket, key, value(file) */ s3.putObject(new PutObjectRequest(bucketName, key, new_file)); System.out.println("Successfully put file temp.txt to S3, we will read it tomorrow..."); System.out.println(); /*********************************** * #3 Monitoring (CloudWatch) *********************************/ System.out.println(); System.out.println("#6 set up cloudwatch"); try { /* create CloudWatch client */ AmazonCloudWatchClient cloudWatch = new AmazonCloudWatchClient(credentials); /* create request message1 */ GetMetricStatisticsRequest statRequest1 = new GetMetricStatisticsRequest(); GetMetricStatisticsRequest statRequest2 = new GetMetricStatisticsRequest(); /* set up request message */ statRequest1.setNamespace("AWS/EC2"); //namespace statRequest2.setNamespace("AWS/EC2"); //namespace statRequest1.setPeriod(60); //period of data statRequest2.setPeriod(60); //period of data ArrayList<String> stats = new ArrayList<String>(); /* Use one of these strings: Average, Maximum, Minimum, SampleCount, Sum */ stats.add("Average"); stats.add("Sum"); statRequest1.setStatistics(stats); statRequest2.setStatistics(stats); /* Use one of these strings: CPUUtilization, NetworkIn, NetworkOut, DiskReadBytes, DiskWriteBytes, DiskReadOperations */ statRequest1.setMetricName("CPUUtilization"); statRequest2.setMetricName("CPUUtilization"); /* set time */ GregorianCalendar calendar = new GregorianCalendar(TimeZone.getTimeZone("UTC")); calendar.add(GregorianCalendar.SECOND, -1 * calendar.get(GregorianCalendar.SECOND)); // 1 second ago Date endTime = calendar.getTime(); calendar.add(GregorianCalendar.MINUTE, -10); // 10 minutes ago Date startTime = calendar.getTime(); statRequest1.setStartTime(startTime); statRequest1.setEndTime(endTime); statRequest2.setStartTime(startTime); statRequest2.setEndTime(endTime); /* specify an instance */ ArrayList<Dimension> dimensions1 = new ArrayList<Dimension>(); dimensions1.add(new Dimension().withName("InstanceId").withValue(insId1)); ArrayList<Dimension> dimensions2 = new ArrayList<Dimension>(); dimensions2.add(new Dimension().withName("InstanceId").withValue(insId2)); statRequest1.setDimensions(dimensions1); statRequest2.setDimensions(dimensions2); System.out.println("Set up cloud watch for instance: " + insId1 + " and instance: " + insId2); /* !!!!!!!!!!!!here set for 10 loops for now */ /* get statistics */ for (int i = 0; i < 10; i++) { GetMetricStatisticsResult statResult1 = cloudWatch.getMetricStatistics(statRequest1); GetMetricStatisticsResult statResult2 = cloudWatch.getMetricStatistics(statRequest2); /* display */ System.out.println("Instance 1: " + statResult1.toString()); List<Datapoint> dataList = statResult1.getDatapoints(); Double averageCPU = null; Date timeStamp = null; for (Datapoint d : dataList) { averageCPU = d.getAverage(); timeStamp = d.getTimestamp(); System.out .println("Instance 1 average CPU utlilization for last 10 minutes: " + averageCPU); System.out.println("Instance 1 total CPU utlilization for last 10 minutes: " + d.getSum()); } System.out.println(); System.out.println("Instance 2: " + statResult1.toString()); dataList = statResult2.getDatapoints(); for (Datapoint d : dataList) { averageCPU = d.getAverage(); timeStamp = d.getTimestamp(); System.out .println("Instance 2 average CPU utlilization for last 10 minutes: " + averageCPU); System.out.println("Instance 2 total CPU utlilization for last 10 minutes: " + d.getSum()); } } } catch (AmazonServiceException ase) { System.out.println("Caught Exception: " + ase.getMessage()); System.out.println("Reponse Status Code: " + ase.getStatusCode()); System.out.println("Error Code: " + ase.getErrorCode()); System.out.println("Request ID: " + ase.getRequestId()); } /*********************************** * # Copy script to * instance and run *********************************/ System.out.println(); System.out.println("Waiting for init and automatically SSH..."); /* call runtime exec to run scp */ execCmdRuby(insDNS1, keyGroupName); /*********************************** * # Save instances to image *********************************/ System.out.println(); System.out.println("******* Approaching 5:00 pm, create ami for instances *********"); String imageId1; String imageId2; String snapshot1; String snapshot2; imageId1 = createAmiFromInstance(insId1, "image1", true); imageId2 = createAmiFromInstance(insId2, "image2", true); System.out.println("Created first image id: " + imageId1); System.out.println("Created second image id: " + imageId2); snapshot1 = createSnapShotFromVolume(volume_name1); snapshot2 = createSnapShotFromVolume(volume_name2); System.out.println("Created first snapshot id: " + snapshot1); System.out.println("Created second snapshot id: " + snapshot2); /********************************************* * * # Stop Instances * *********************************************/ System.out.println(); System.out.println("#7 Stop & terminate the Instance"); List<String> instanceIds = new LinkedList<String>(); instanceIds.add(insId1); instanceIds.add(insId2); /* stop instances */ StopInstancesRequest stopIR = new StopInstancesRequest(instanceIds); ec2.stopInstances(stopIR); TerminateInstancesRequest tir = new TerminateInstancesRequest(instanceIds); ec2.terminateInstances(tir); /********************************************* * * # Detach volumes * *********************************************/ System.out.println(); System.out.println("Detach the volumes from the instances..."); deatchVolume(insId1, volume_name1); deatchVolume(insId2, volume_name2); /********************************************* * * # Delete Volumes * *********************************************/ System.out.println(); while (true) { if (getVolumeState(volume_name1).compareTo("available") == 0 && getVolumeState(volume_name2).compareTo("available") == 0) break; } System.out.println("Delete volumes..."); Thread.sleep(10000); deleteVolume(volume_name1); deleteVolume(volume_name2); /********************************************* * * # Second day restore instances and volumes * *********************************************/ System.out.println(); System.out.println("#8 Second day start up instances from stored amis..."); String newInsId1 = ""; String newInsId2 = ""; String newInsIP1 = ""; String newInsIP2 = ""; String newInsZone1 = ""; String newInsZone2 = ""; newInsId1 = createInstanceFromImageId(imageId1, keyGroupName); newInsId2 = createInstanceFromImageId(imageId2, keyGroupName); System.out.println("Second day first instance has been restored with id: " + newInsId1); System.out.println("Second day second instance has been restored with id: " + newInsId2); newInsZone1 = getInstanceZone(newInsId1); newInsZone2 = getInstanceZone(newInsId2); System.out.println("New instance 1 zone: " + newInsZone1); System.out.println("New instance 2 zone: " + newInsZone2); newInsIP1 = getInstanceIP(newInsId1); newInsIP2 = getInstanceIP(newInsId2); System.out.println("New instance 1 IP: " + newInsIP1); System.out.println("New instance 2 IP: " + newInsIP2); Thread.sleep(120000); /* exec read */ System.out.println(); System.out.println("Now start to read the file stored yesterday..."); execCmdRead(newInsIP1, keyGroupName); /********************************************* * * #9 Read data from S3 * *********************************************/ /* get the object from the first day */ System.out.println(); System.out.println("#9 Reading data from S3 stored on the first day"); S3Object object = s3.getObject(new GetObjectRequest(bucketName, key)); BufferedReader reader = new BufferedReader(new InputStreamReader(object.getObjectContent())); String data = null; while ((data = reader.readLine()) != null) { System.out.println(data); } /********************************************* * * #10 shutdown client object * *********************************************/ System.out.println("#10 shutdown client objects"); ec2.shutdown(); s3.shutdown(); } catch (AmazonServiceException ase) { System.out.println("Caught Exception: " + ase.getMessage()); System.out.println("Reponse Status Code: " + ase.getStatusCode()); System.out.println("Error Code: " + ase.getErrorCode()); System.out.println("Request ID: " + ase.getRequestId()); } }
From source file:PutFile.java
License:Apache License
public static void main(String[] args) throws IOException { /*// w w w . j a v a2s.co m * Important: Be sure to fill in your AWS access credentials in the * AwsCredentials.properties file before you try to run this sample. * http://aws.amazon.com/security-credentials */ AmazonS3 s3 = new AmazonS3Client(new PropertiesCredentials( PutFile.class.getResourceAsStream("AwsCredentials.properties"))); String bucketName = "dtccTest"; System.out.println("==========================================="); System.out.println(" Amazon S3 Test"); System.out.println("===========================================\n"); try { /* * List the buckets in your account */ System.out.println("Listing buckets"); for (Bucket bucket : s3.listBuckets()) { System.out.println(" - " + bucket.getName()); } System.out.println(); String fileName = "S3HWTest.zip"; File file = new File(fileName); System.out.println("Uploading a new object to S3 from a file " + fileName + "\n"); System.out.println("file.length() " + file.length() + "\n"); long start = System.currentTimeMillis(); PutObjectRequest request = new PutObjectRequest(bucketName, fileName, file); request.setCannedAcl(CannedAccessControlList.PublicRead); s3.putObject(request); System.out.println("Uploading done in " + (System.currentTimeMillis() - start) + " ms.\n"); } catch (AmazonServiceException ase) { System.out.println("Caught an AmazonServiceException, whichmeans your request made it " + "to Amazon S3, but was rejected with an errorresponse for some reason."); System.out.println("Error Message: " + ase.getMessage()); System.out.println("HTTP Status Code: " + ase.getStatusCode()); System.out.println("AWS Error Code: " + ase.getErrorCode()); System.out.println("Error Type: " + ase.getErrorType()); System.out.println("Request ID: " + ase.getRequestId()); } catch (AmazonClientException ace) { System.out.println("Caught an AmazonClientException, whichmeans the client encountered " + "a serious internal problem while trying tocommunicate with S3, " + "such as not being able to access the network."); System.out.println("Error Message: " + ace.getMessage()); } }