GET Object operation is used to fetch an object from the QueryIO cluster.
Following code is used to GET object from a bucket.
HttpURLConnection object creates a GET request to access an object from the bucket. URL appended with objectName is used with HttpURLConnection object. On successful operation, 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 retreives 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 to be retrieved */ public void getObject(String serverURL, String token, String bucketName, String objectName) throws Exception { URL url = null; HttpURLConnection httpCon = null; InputStream is = null;OutputStream os = 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("GET"); //GET 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 is = httpCon.getInputStream(); // Process file data here StringWriter writer = new StringWriter(); os = new FileOutputStream(new File("/QueryIO/a.txt")); //Copy object to local system IOUtils.copy(is, os); System.out.println("GET object successful."); } } finally { try { //close streams and connections if (is != null) is.close(); if (os != null) os.close(); } catch (IOException e) { e.printStackTrace(); } if (httpCon != null) { httpCon.disconnect(); } } } }