Package com.cloud.bridge.service.core.s3

Examples of com.cloud.bridge.service.core.s3.S3PutObjectInlineRequest


    String contentType = request.getHeader( "Content-Type" );
    long contentLength = Converter.toLong(request.getHeader("Content-Length"), 0);

    String bucket = (String) request.getAttribute(S3Constants.BUCKET_ATTR_KEY);
    String key    = (String) request.getAttribute(S3Constants.OBJECT_ATTR_KEY);
    S3PutObjectInlineRequest engineRequest = new S3PutObjectInlineRequest();
    engineRequest.setBucketName(bucket);
    engineRequest.setKey(key);
    engineRequest.setContentLength(contentLength);
    engineRequest.setMetaEntries( extractMetaData( request ));
    engineRequest.setCannedAccess( request.getHeader( "x-amz-acl" ));

    DataHandler dataHandler = new DataHandler(new ServletRequestDataSource(request));
    engineRequest.setData(dataHandler);

    S3PutObjectInlineResponse engineResponse = ServiceProvider.getInstance().getS3Engine().handleRequest(engineRequest);
    response.setHeader("ETag", "\"" + engineResponse.getETag() + "\"");
    String version = engineResponse.getVersion();
    if (null != version) response.addHeader( "x-amz-version-id", version );   
View Full Code Here


   
    // [A] First parse all the parts out of the POST request and message body
    // -> bucket name is still encoded in a Host header
       S3AuthParams params = new S3AuthParams();
    List<S3MetaDataEntry> metaSet = new ArrayList<S3MetaDataEntry>()
    S3PutObjectInlineRequest engineRequest = new S3PutObjectInlineRequest();
    engineRequest.setBucketName( bucket );
   
    // -> the last body part contains the content that is used to write the S3 object, all
    //    other body parts are header values
    while( null != (oneLine = br.readLine()))
    {
      if ( oneLine.startsWith( lastBoundary ))
      {
         // -> this is the data of the object to put
         if (0 < temp.length())
         {
             value = temp.toString();
             temp.setLength( 0 );
            
            engineRequest.setContentLength( value.length())
            engineRequest.setDataAsString( value );
         }
         break;
      }
      else if ( oneLine.startsWith( boundary ))
      {
         // -> this is the header data
         if (0 < temp.length())
         {
             value = temp.toString().trim();
             temp.setLength( 0 );            
             //System.out.println( "param: " + name + " = " + value );
            
                  if (name.equalsIgnoreCase( "key" )) {
                    engineRequest.setKey( value );
                  }
             else if (name.equalsIgnoreCase( "x-amz-acl" )) {
                    engineRequest.setCannedAccess( value );
             }
             else if (isMetaTag) {
                      S3MetaDataEntry oneMeta = new S3MetaDataEntry();
                      oneMeta.setName( metaName );
                      oneMeta.setValue( value );
                      metaSet.add( oneMeta );
                      countMeta++;
                      metaName = null;
             }
              
             // -> build up the headers so we can do authentication on this POST
             HeaderParam oneHeader = new HeaderParam();
             oneHeader.setName( name );
             oneHeader.setValue( value );
             params.addHeader( oneHeader );
         }
         state = 1;
      }
      else if (1 == state && 0 == oneLine.length())
      {
         // -> data of a body part starts here
         state = 2;
      }
      else if (1 == state)
      {
         // -> the name of the 'name-value' pair is encoded in the Content-Disposition header
         if (oneLine.startsWith( "Content-Disposition: form-data;"))
         {
           isMetaTag = false;
           int nameOffset = oneLine.indexOf( "name=" );
           if (-1 != nameOffset)
           {
             name = oneLine.substring( nameOffset+5 );
             if (name.startsWith( "\"" )) name = name.substring( 1 );
             if (name.endsWith( "\"" ))   name = name.substring( 0, name.length()-1 );
             name = name.trim();
            
             if (name.startsWith( "x-amz-meta-" )) {
               metaName  = name.substring( 11 );
               isMetaTag = true;
             }
           }
         }
      }
      else if (2 == state)
      {
         // -> the body parts data may take up multiple lines
                 //System.out.println( oneLine.length() + " body data: " + oneLine );
                 temp.append( oneLine );
      }
//      else System.out.println( oneLine.length() + " preamble: " + oneLine );
    }
   
   
    // [B] Authenticate the POST request after we have all the headers
    try {
        S3RestServlet.authenticateRequest( request, params );
    }
    catch( Exception e ) {
      throw new IOException( e.toString());
    }
   
    // [C] Perform the request
        if (0 < countMeta) engineRequest.setMetaEntries( metaSet.toArray(new S3MetaDataEntry[0]));
    S3PutObjectInlineResponse engineResponse = ServiceProvider.getInstance().getS3Engine().handleRequest( engineRequest );
    response.setHeader("ETag", "\"" + engineResponse.getETag() + "\"");
    String version = engineResponse.getVersion();
    if (null != version) response.addHeader( "x-amz-version-id", version );   
  }
View Full Code Here

    String   key    = (String) request.getAttribute(S3Constants.OBJECT_ATTR_KEY);
    String   cannedAccess = request.getHeader( "x-amz-acl" );
    S3MetaDataEntry[] meta = extractMetaData( request );
       
        // -> the S3 engine has easy access to all the privileged checking code
    S3PutObjectInlineRequest engineRequest = new S3PutObjectInlineRequest();
    engineRequest.setBucketName(bucket);
    engineRequest.setKey(key);
    engineRequest.setCannedAccess( cannedAccess );
    engineRequest.setMetaEntries( meta );
    S3PutObjectInlineResponse engineResponse = ServiceProvider.getInstance().getS3Engine().initiateMultipartUpload( engineRequest );
    int result = engineResponse.getResultCode();
    response.setStatus( result );
        if (200 != result) return;
       
View Full Code Here

        logger.error("executeUploadPart failed due to " + e.getMessage(), e)
      response.setStatus(500);
      return;
    }

    S3PutObjectInlineRequest engineRequest = new S3PutObjectInlineRequest();
    engineRequest.setBucketName(bucket);
    engineRequest.setKey(key);
    engineRequest.setContentLength(contentLength);
    DataHandler dataHandler = new DataHandler(new ServletRequestDataSource(request));
    engineRequest.setData(dataHandler);

    S3PutObjectInlineResponse engineResponse = ServiceProvider.getInstance().getS3Engine().saveUploadPart( engineRequest, uploadId, partNumber );
    if (null != engineResponse.getETag()) response.setHeader("ETag", "\"" + engineResponse.getETag() + "\"");
    response.setStatus(engineResponse.getResultCode());
  }
View Full Code Here

      return;
    }

   
    // [D] Ask the engine to create a newly re-constituted object
    S3PutObjectInlineRequest engineRequest = new S3PutObjectInlineRequest();
    engineRequest.setBucketName(bucket);
    engineRequest.setKey(key);
    engineRequest.setMetaEntries(meta);
    engineRequest.setCannedAccess(cannedAccess);

    S3PutObjectInlineResponse engineResponse = ServiceProvider.getInstance().getS3Engine().concatentateMultipartUploads( response, engineRequest, parts, os );
    int result = engineResponse.getResultCode();
    // -> free all multipart state since we now have one concatentated object
    if (200 == result) ServiceProvider.getInstance().getS3Engine().freeUploadParts( bucket, uploadId, false );
View Full Code Here

    long contentLength = Converter.toLong(request.getHeader("Content-Length"), 0);

    String bucket = (String) request.getAttribute(S3Constants.BUCKET_ATTR_KEY);
    String key    = (String) request.getAttribute(S3Constants.OBJECT_ATTR_KEY);
    S3PutObjectInlineRequest engineRequest = new S3PutObjectInlineRequest();
    engineRequest.setBucketName(bucket);
    engineRequest.setKey(key);
    engineRequest.setContentLength(contentLength);
    engineRequest.setMetaEntries( extractMetaData( request ));
    engineRequest.setCannedAccess( request.getHeader( "x-amz-acl" ));

    DataHandler dataHandler = new DataHandler(new ServletRequestDataSource(request));
    engineRequest.setData(dataHandler);

    S3PutObjectInlineResponse engineResponse = ServiceProvider.getInstance().getS3Engine().handleRequest(engineRequest);
    response.setHeader("ETag", "\"" + engineResponse.getETag() + "\"");
    String version = engineResponse.getVersion();
    if (null != version) response.addHeader( "x-amz-version-id", version );   
View Full Code Here

    grant.setCanonicalUserID(accessKey);
    grant.setGrantee(SAcl.GRANTEE_USER);
    grant.setPermission(SAcl.PERMISSION_FULL);
    S3AccessControlList acl = new S3AccessControlList();
    acl.addGrant(grant);
    S3PutObjectInlineRequest engineRequest = new S3PutObjectInlineRequest();
    engineRequest.setBucketName(bucket);
    engineRequest.setKey(key);
    engineRequest.setAcl(acl);
    engineRequest.setContentLength(contentLength);
    engineRequest.setMetaEntries( extractMetaData( request ));
    engineRequest.setCannedAccess( request.getHeader( "x-amz-acl" ));

    DataHandler dataHandler = new DataHandler(new ServletRequestDataSource(request));
    engineRequest.setData(dataHandler);

    S3PutObjectInlineResponse engineResponse = ServiceProvider.getInstance().getS3Engine().handleRequest(engineRequest);
    response.setHeader("ETag", "\"" + engineResponse.getETag() + "\"");
    String version = engineResponse.getVersion();
    if (null != version) response.addHeader( "x-amz-version-id", version );   
View Full Code Here

   
    // [A] First parse all the parts out of the POST request and message body
    // -> bucket name is still encoded in a Host header
       S3AuthParams params = new S3AuthParams();
    List<S3MetaDataEntry> metaSet = new ArrayList<S3MetaDataEntry>()
    S3PutObjectInlineRequest engineRequest = new S3PutObjectInlineRequest();
    engineRequest.setBucketName( bucket );
   
    // -> the last body part contains the content that is used to write the S3 object, all
    //    other body parts are header values
    while( null != (oneLine = br.readLine()))
    {
      if ( oneLine.startsWith( lastBoundary ))
      {
         // -> this is the data of the object to put
         if (0 < temp.length())
         {
             value = temp.toString();
             temp.setLength( 0 );
            
            engineRequest.setContentLength( value.length())
            engineRequest.setDataAsString( value );
         }
         break;
      }
      else if ( oneLine.startsWith( boundary ))
      {
         // -> this is the header data
         if (0 < temp.length())
         {
             value = temp.toString().trim();
             temp.setLength( 0 );            
             //System.out.println( "param: " + name + " = " + value );
            
                  if (name.equalsIgnoreCase( "key" )) {
                    engineRequest.setKey( value );
                  }
             else if (name.equalsIgnoreCase( "x-amz-acl" )) {
                    engineRequest.setCannedAccess( value );
             }
             else if (isMetaTag) {
                      S3MetaDataEntry oneMeta = new S3MetaDataEntry();
                      oneMeta.setName( metaName );
                      oneMeta.setValue( value );
                      metaSet.add( oneMeta );
                      countMeta++;
                      metaName = null;
             }
              
             // -> build up the headers so we can do authentication on this POST
             HeaderParam oneHeader = new HeaderParam();
             oneHeader.setName( name );
             oneHeader.setValue( value );
             params.addHeader( oneHeader );
         }
         state = 1;
      }
      else if (1 == state && 0 == oneLine.length())
      {
         // -> data of a body part starts here
         state = 2;
      }
      else if (1 == state)
      {
         // -> the name of the 'name-value' pair is encoded in the Content-Disposition header
         if (oneLine.startsWith( "Content-Disposition: form-data;"))
         {
           isMetaTag = false;
           int nameOffset = oneLine.indexOf( "name=" );
           if (-1 != nameOffset)
           {
             name = oneLine.substring( nameOffset+5 );
             if (name.startsWith( "\"" )) name = name.substring( 1 );
             if (name.endsWith( "\"" ))   name = name.substring( 0, name.length()-1 );
             name = name.trim();
            
             if (name.startsWith( "x-amz-meta-" )) {
               metaName  = name.substring( 11 );
               isMetaTag = true;
             }
           }
         }
      }
      else if (2 == state)
      {
         // -> the body parts data may take up multiple lines
                 //System.out.println( oneLine.length() + " body data: " + oneLine );
                 temp.append( oneLine );
      }
//      else System.out.println( oneLine.length() + " preamble: " + oneLine );
    }
   
   
    // [B] Authenticate the POST request after we have all the headers
    try {
        S3RestServlet.authenticateRequest( request, params );
    }
    catch( Exception e ) {
      throw new IOException( e.toString());
    }
   
    // [C] Perform the request
        if (0 < countMeta) engineRequest.setMetaEntries( metaSet.toArray(new S3MetaDataEntry[0]));
    S3PutObjectInlineResponse engineResponse = ServiceProvider.getInstance().getS3Engine().handleRequest( engineRequest );
    response.setHeader("ETag", "\"" + engineResponse.getETag() + "\"");
    String version = engineResponse.getVersion();
    if (null != version) response.addHeader( "x-amz-version-id", version );   
  }
View Full Code Here

    String   key    = (String) request.getAttribute(S3Constants.OBJECT_ATTR_KEY);
    String   cannedAccess = request.getHeader( "x-amz-acl" );
    S3MetaDataEntry[] meta = extractMetaData( request );
       
        // -> the S3 engine has easy access to all the privileged checking code
    S3PutObjectInlineRequest engineRequest = new S3PutObjectInlineRequest();
    engineRequest.setBucketName(bucket);
    engineRequest.setKey(key);
    engineRequest.setCannedAccess( cannedAccess );
    engineRequest.setMetaEntries( meta );
    S3PutObjectInlineResponse engineResponse = ServiceProvider.getInstance().getS3Engine().initiateMultipartUpload( engineRequest );
    int result = engineResponse.getResultCode();
    response.setStatus( result );
        if (200 != result) return;
       
View Full Code Here

        logger.error("executeUploadPart failed due to " + e.getMessage(), e)
      response.setStatus(500);
      return;
    }

    S3PutObjectInlineRequest engineRequest = new S3PutObjectInlineRequest();
    engineRequest.setBucketName(bucket);
    engineRequest.setKey(key);
    engineRequest.setContentLength(contentLength);
    DataHandler dataHandler = new DataHandler(new ServletRequestDataSource(request));
    engineRequest.setData(dataHandler);

    S3PutObjectInlineResponse engineResponse = ServiceProvider.getInstance().getS3Engine().saveUploadPart( engineRequest, uploadId, partNumber );
    if (null != engineResponse.getETag()) response.setHeader("ETag", "\"" + engineResponse.getETag() + "\"");
    response.setStatus(engineResponse.getResultCode());
  }
View Full Code Here

TOP

Related Classes of com.cloud.bridge.service.core.s3.S3PutObjectInlineRequest

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.