The HEAD object of QueryIO server fetches the metadata from an object. This is useful if user is only interested in metadata of object, since it does not return the object itself.
Following code is used to perform HEAD object operation.
HttpURLConnection object creates a HEAD request to access an object from the bucket. URL appended with objectName is used with HttpURLConnection object. On successful completion, a HttpStatus.SC_OK response code is received.
import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; import org.apache.http.HttpStatus; public class ObjectOperations { /* * This program retrieves a object from the bucket * @param serverURL: URL of S3 Compatible REST server(http://<S3 server IP> : <S3 server port> /queryio/). For example: http://192.168.0.1:5667/queryio/ * @param token: authorization token. * @param bucketName: Name of the bucket from which object will be retrieved * @param objectName: Name of the object whose metadata will be retrieved */ public void getObject(String serverURL, String token, String bucketName, String objectName) throws Exception { URL url = null; HttpURLConnection httpCon = null; InputStream is = null; try { /* append "/" at end of serverURL */ if (!serverURL.endsWith("/")) { serverURL = serverURL + "/"; } url = new URL(serverURL + bucketName + "/" + objectName); //creates a URL with appending bucket name and objectName //Returns a URLConnection object that represents a connection to the remote object referred to by the URL. httpCon = (HttpURLConnection) url.openConnection(); httpCon.setDoOutput(true); // to use the URL connection for output httpCon.setRequestMethod("HEAD"); //HEAD request is used httpCon.setRequestProperty("authorization", token); //Provides token for authorization httpCon.connect(); //Opens a communications link to the resource reference by the URL if (httpCon.getResponseCode() == HttpStatus.SC_OK) { //OK response for successful GET Object request for (int i = 0;; i++) { String headerName = httpCon.getHeaderFieldKey(i); String headerValue = httpCon.getHeaderField(i); if (headerName == null && headerValue == null) { break; } System.out.println(headerName + " : " + headerValue); } } } finally { try { if (is != null) is.close(); //close stream } catch (IOException e) { e.printStackTrace(); } if (httpCon != null) { httpCon.disconnect(); //close connection } } } }