Services or capabilities described in Amazon Web Services documentation might vary by Region. To see the differences applicable to the China Regions,
see Getting Started with Amazon Web Services in China
(PDF).
Use HeadObject
with an Amazon SDK
The following code example shows how to use HeadObject
.
- Java
-
- SDK for Java 2.x
-
Get metadata of an object in a directory bucket.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.HeadObjectRequest;
import software.amazon.awssdk.services.s3.model.HeadObjectResponse;
import software.amazon.awssdk.services.s3.model.S3Exception;
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 metadata for an object in 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 retrieve metadata for
* @return True if the object exists, false otherwise
*/
public static boolean headDirectoryBucketObject(S3Client s3Client, String bucketName, String objectKey) {
logger.info("Retrieving metadata for object: {} from bucket: {}", objectKey, bucketName);
try {
// Create a HeadObjectRequest
HeadObjectRequest headObjectRequest = HeadObjectRequest.builder()
.bucket(bucketName)
.key(objectKey)
.build();
// Retrieve the object metadata
HeadObjectResponse response = s3Client.headObject(headObjectRequest);
logger.info("Amazon S3 object: \"{}\" found in bucket: \"{}\" with ETag: \"{}\"", objectKey, bucketName,
response.eTag());
logger.info("Content-Type: {}", response.contentType());
logger.info("Content-Length: {}", response.contentLength());
logger.info("Last Modified: {}", response.lastModified());
return true;
} catch (S3Exception e) {
logger.error("Failed to retrieve object metadata: {} - Error code: {}", e.awsErrorDetails().errorMessage(),
e.awsErrorDetails().errorCode(), e);
return false;
}
}
For a complete list of Amazon SDK developer guides and code examples, see
Developing with Amazon S3 using the Amazon SDKs.
This topic also includes information about getting started and details about previous SDK versions.