Create new Object

PUT Object operation is used to add an object to the bucket.

Create new Object using S3 Compatible REST API

Following code is used to PUT object in the bucket.

HttpURLConnection object is used to create a PUT request with URL containing path to objectName. For a successful request, HttpStatus.SC_OK response code is returned.

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 adds a object to 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 in which object will be added
	 * @param objectName: Name of the object to be added
	 * @param filePath: Path of the local file that will be uploaded
	 */
	public static void putObject(String os3Url, String token, String bucket, String object, String filePath) throws Exception
    	{
	        HttpPut request = new HttpPut(os3Url + bucket + "/" + object);	//HttpPut instance with path of the object to be created
	
	        request.addHeader("authorization", token);	//Provides token for authorization
	        
	        RandomAccessFile f = new RandomAccessFile(filePath, "r");	//Instance to read object provided on filepath
	        byte[] b = new byte[(int)f.length()];	//get total length of object in bytes.
	        f.read(b);	//read number of bytes from object
	        request.setEntity(new ByteArrayEntity(b));	//assign PUT request with byte array of object to be uploaded
	        DefaultHttpClient client = new DefaultHttpClient();	//Create object of DefaultHttpClient
	        HttpResponse response = client.execute(request);	//Executes the client request
	        
	        if(response.getStatusLine().getStatusCode() != HttpStatus.SC_OK)	//Check for OK response
	        {
	            System.err.println(response.getStatusLine().getReasonPhrase());
	            throw new Exception("Put Object failed");	//Create object operation failed
	        }
    	}
	


Copyright 2017 QueryIO Corporation. All Rights Reserved.

QueryIO, "Big Data Intelligence" and the QueryIO Logo are trademarks of QueryIO Corporation. Apache, Hadoop and HDFS are trademarks of The Apache Software Foundation.