Use GetObject
with an AWS SDK
The following code example shows how to use GetObject
.
Action examples are code excerpts from larger programs and must be run in context. You can see this action in
context in the following code examples:
- Java
-
- SDK for Java 2.x
-
Get an object from a directory bucket.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import software.amazon.awssdk.core.ResponseBytes;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.GetObjectRequest;
import software.amazon.awssdk.services.s3.model.GetObjectResponse;
import software.amazon.awssdk.services.s3.model.S3Exception;
import java.nio.charset.StandardCharsets;
import java.nio.file.Path;
import static com.example.s3.util.S3DirectoryBucketUtils.createDirectoryBucket;
import static com.example.s3.util.S3DirectoryBucketUtils.createS3Client;
import static com.example.s3.util.S3DirectoryBucketUtils.deleteAllObjectsInDirectoryBucket;
import static com.example.s3.util.S3DirectoryBucketUtils.deleteDirectoryBucket;
import static com.example.s3.util.S3DirectoryBucketUtils.getFilePath;
import static com.example.s3.util.S3DirectoryBucketUtils.putDirectoryBucketObject;
/**
* Retrieves an object from the specified S3 directory bucket.
*
* @param s3Client The S3 client used to interact with S3
* @param bucketName The name of the directory bucket
* @param objectKey The key (name) of the object to be retrieved
* @return The retrieved object as a ResponseInputStream
*/
public static boolean getDirectoryBucketObject(S3Client s3Client, String bucketName, String objectKey) {
logger.info("Retrieving object: {} from bucket: {}", objectKey, bucketName);
try {
// Create a GetObjectRequest
GetObjectRequest objectRequest = GetObjectRequest.builder()
.key(objectKey)
.bucket(bucketName)
.build();
// Retrieve the object as bytes
ResponseBytes<GetObjectResponse> objectBytes = s3Client.getObjectAsBytes(objectRequest);
byte[] data = objectBytes.asByteArray();
// Print object contents to console
String objectContent = new String(data, StandardCharsets.UTF_8);
logger.info("Object contents: \n{}", objectContent);
return true;
} catch (S3Exception e) {
logger.error("Failed to retrieve object: {} - Error code: {}", e.awsErrorDetails().errorMessage(),
e.awsErrorDetails().errorCode(), e);
return false;
}
}
For a complete list of AWS SDK developer guides and code examples, see
Developing with Amazon S3 using the AWS SDKs.
This topic also includes information about getting started and details about previous SDK versions.