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

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


            initiator = uploadDao.getInitiator( uploadId );
            if (null == initiator || !initiator.equals( UserContext.current().getAccessKey()))
            {
                try {
                    // -> write permission on a bucket allows a PutObject / DeleteObject action on any object in the bucket
                    S3PolicyContext context = new S3PolicyContext( PolicyActions.ListMultipartUploadParts, bucketName );
                    context.setKeyName( exists.getSecond());
                    S3Engine.verifyAccess( context, "SBucket", bucket.getId(), SAcl.PERMISSION_WRITE );
                }
                catch (PermissionDeniedException e) {
                    response.setStatus(403);
                    return;
View Full Code Here


  public PutObjectInlineResponse putObjectInline (PutObjectInline putObjectInline) {
    return toPutObjectInlineResponse(engine.handleRequest(toEnginePutObjectInlineRequest(putObjectInline)));
    }
 
  private S3PutObjectInlineRequest toEnginePutObjectInlineRequest(PutObjectInline putObjectInline) {
    S3PutObjectInlineRequest request = new S3PutObjectInlineRequest();
    request.setAccessKey(putObjectInline.getAWSAccessKeyId());
    request.setRequestTimestamp(putObjectInline.getTimestamp());
    request.setSignature(putObjectInline.getSignature());
    request.setBucketName(putObjectInline.getBucket());
    request.setContentLength(putObjectInline.getContentLength());
    request.setKey(putObjectInline.getKey());
    request.setData(putObjectInline.getData());
    request.setMetaEntries(toEngineMetaEntries(putObjectInline.getMetadata()));
    request.setAcl(toEngineAccessControlList(putObjectInline.getAccessControlList()));
    return request;
  }
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

            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, outputStream );
        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

        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

        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

TOP

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

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.