public void getObject()

in src/main/java/com/amazonaws/gdcreplication/util/S3Util.java [137:189]


	public void getObject(String region, String bucketName, String key) throws IOException {

		S3Object fullObject = null, objectPortion = null, headerOverrideObject = null;
		try {
			AmazonS3 s3Client = AmazonS3ClientBuilder.standard().withRegion(region)
					.withCredentials(new ProfileCredentialsProvider()).build();

			// Get an object and print its contents.
			System.out.println("Downloading an object");
			fullObject = s3Client.getObject(new GetObjectRequest(bucketName, key));
			System.out.println("Content-Type: " + fullObject.getObjectMetadata().getContentType());
			System.out.println("Content: ");
			displayTextInputStream(fullObject.getObjectContent());

			// Get a range of bytes from an object and print the bytes.
			GetObjectRequest rangeObjectRequest = new GetObjectRequest(bucketName, key).withRange(0, 9);
			objectPortion = s3Client.getObject(rangeObjectRequest);
			System.out.println("Printing bytes retrieved.");

			displayTextInputStream(objectPortion.getObjectContent());

			// Get an entire object, overriding the specified response headers, and print
			// the object's content.

			ResponseHeaderOverrides headerOverrides = new ResponseHeaderOverrides().withCacheControl("No-cache")
					.withContentDisposition("attachment; filename=example.txt");
			GetObjectRequest getObjectRequestHeaderOverride = new GetObjectRequest(bucketName, key)
					.withResponseHeaders(headerOverrides);
			headerOverrideObject = s3Client.getObject(getObjectRequestHeaderOverride);
			displayTextInputStream(headerOverrideObject.getObjectContent());
		} catch (AmazonServiceException e) {
			// The call was transmitted successfully, but Amazon S3 couldn't process
			// it, so it returned an error response.
			e.printStackTrace();
		} catch (SdkClientException e) {
			// Amazon S3 couldn't be contacted for a response, or the client
			// couldn't parse the response from Amazon S3.
			e.printStackTrace();
		} finally {
			// To ensure that the network connection doesn't remain open, close any open
			// input streams.
			if (fullObject != null) {
				fullObject.close();
			}
			if (objectPortion != null) {
				objectPortion.close();
			}
			if (headerOverrideObject != null) {
				headerOverrideObject.close();
			}
		}

	}