Examples of SBucketVO


Examples of com.cloud.bridge.model.SBucketVO

        String key = request.getKey();
        long contentLength = request.getContentLength();
        S3MetaDataEntry[] meta = request.getMetaEntries();
        S3AccessControlList acl = request.getAcl();

        SBucketVO bucket = bucketDao.getByName(bucketName);
        if(bucket == null) throw new NoSuchObjectException("Bucket " + bucketName + " does not exist");

        // Is the caller allowed to write the object? 
        // The allocObjectItem checks for the bucket policy PutObject permissions
        OrderedPair<SObjectVO, SObjectItemVO> object_objectitem_pair = allocObjectItem(bucket, key, meta, acl, null);
        OrderedPair<SHostVO, String> host_storagelocation_pair = getBucketStorageHost(bucket);

        S3BucketAdapter bucketAdapter =  getStorageHostBucketAdapter(host_storagelocation_pair.getFirst());
        String itemFileName = object_objectitem_pair.getSecond().getStoredPath();
        InputStream is = null;
        Transaction txn = null;
        try {
            // explicit transaction control to avoid holding transaction during file-copy process

            txn = Transaction.open(Transaction.AWSAPI_DB);
            txn.start();

            is = request.getInputStream();
            String md5Checksum = bucketAdapter.saveObject(is, host_storagelocation_pair.getSecond(), bucket.getName(), itemFileName);
            response.setETag(md5Checksum);
            response.setLastModified(DateHelper.toCalendar( object_objectitem_pair.getSecond().getLastModifiedTime()));

            SObjectItemVO item = itemDao.findById(object_objectitem_pair.getSecond().getId());
            item.setMd5(md5Checksum);
View Full Code Here

Examples of com.cloud.bridge.model.SBucketVO

        S3PolicyContext context = null;

        // [A] First find the object in the bucket
        S3Response response  = new S3Response();  
        String bucketName = request.getBucketName();
        SBucketVO sbucket = bucketDao.getByName( bucketName );
        if(sbucket == null) {
            response.setResultCode(404);
            response.setResultDescription("Bucket " + bucketName + "does not exist");
            return response;
        }

        String nameKey = request.getKey();
        SObjectVO sobject = objectDao.getByNameKey( sbucket, nameKey );    
        if(sobject == null) {
            response.setResultCode(404);
            response.setResultDescription("Object " + request.getKey() + " in bucket " + bucketName + " does not exist");
            return response;
        }

        String deletionMark = sobject.getDeletionMark();
        if (null != deletionMark) {
            response.setResultCode(404);
            response.setResultDescription("Object " + request.getKey() + " has been deleted (1)");
            return response;
        }


        // [B] Versioning allow the client to ask for a specific version not just the latest
        SObjectItemVO item = null;
        int versioningStatus = sbucket.getVersioningStatus();
        String wantVersion = request.getVersion();
        if ( SBucket.VERSIONING_ENABLED == versioningStatus && null != wantVersion)
            item = sobject.getVersion( wantVersion );
        else item = sobject.getLatestVersion(( SBucket.VERSIONING_ENABLED != versioningStatus ));   
View Full Code Here

Examples of com.cloud.bridge.model.SBucketVO

        // [A] Does the object exist that holds the ACL we are looking for?
        S3AccessControlPolicy policy = new S3AccessControlPolicy()

        String bucketName = request.getBucketName();
        SBucketVO sbucket = bucketDao.getByName( bucketName );
        if (sbucket == null)
            throw new NoSuchObjectException("Bucket " + bucketName + " does not exist");

        //SObjectDaoImpl sobjectDao = new SObjectDaoImpl();
        String nameKey = request.getKey();
        SObjectVO sobject = objectDao.getByNameKey( sbucket, nameKey );
        if (sobject == null)
            throw new NoSuchObjectException("Object " + request.getKey() + " does not exist");

        String deletionMark = sobject.getDeletionMark();
        if (null != deletionMark) {
            policy.setResultCode(404);
            policy.setResultDescription("Object " + request.getKey() + " has been deleted (1)");
            return policy;
        }


        // [B] Versioning allow the client to ask for a specific version not just the latest
        SObjectItemVO item = null;
        int versioningStatus = sbucket.getVersioningStatus();
        String wantVersion = request.getVersion();
        if ( SBucket.VERSIONING_ENABLED == versioningStatus && null != wantVersion)
            item = sobject.getVersion( wantVersion );
        else item = sobject.getLatestVersion(( SBucket.VERSIONING_ENABLED != versioningStatus ));   
View Full Code Here

Examples of com.cloud.bridge.model.SBucketVO

        int resultCode  = 200;

        // [A] Verify that the bucket and the object exist

        String bucketName = request.getBucketName();
        SBucketVO sbucket = bucketDao.getByName(bucketName);
        if (sbucket == null) {
            response.setResultCode(404);
            response.setResultDescription("Bucket " + request.getBucketName() + " does not exist");
            return response;
        }

        String nameKey = request.getKey();
        SObjectVO sobject = objectDao.getByNameKey( sbucket, nameKey );
        if (sobject == null) {
            response.setResultCode(404);
            response.setResultDescription("Object " + request.getKey() + " does not exist in bucket " + request.getBucketName());
            return response;
        }

        String deletionMark = sobject.getDeletionMark();
        if (null != deletionMark) {
            response.setDeleteMarker( deletionMark );
            response.setResultCode(404);
            response.setResultDescription("Object " + request.getKey() + " has been deleted (1)");
            return response;
        }


        // [B] Versioning allow the client to ask for a specific version not just the latest
        SObjectItemVO item = null;
        int versioningStatus = sbucket.getVersioningStatus();
        String wantVersion = request.getVersion();
        if ( SBucket.VERSIONING_ENABLED == versioningStatus && null != wantVersion)      
            item = sobject.getVersion( wantVersion );
        else item = sobject.getLatestVersion(( SBucket.VERSIONING_ENABLED != versioningStatus ));   
View Full Code Here

Examples of com.cloud.bridge.model.SBucketVO

    {   
        // Verify that the bucket and object exist
        S3Response response  = new S3Response();

        String bucketName = request.getBucketName();
        SBucketVO sbucket = bucketDao.getByName( bucketName );
        if (sbucket == null) {
            response.setResultCode(404);
            response.setResultDescription("<Code>Bucket doesn't exists</Code><Message>Bucket " + bucketName + " does not exist</Message>");
            return response;
        }


        String nameKey = request.getKey();
        SObjectVO sobject = objectDao.getByNameKey( sbucket, nameKey );
        if (sobject == null) {
            response.setResultCode(404);
            response.setResultDescription("<Code>Not Found</Code><Message>No object with key " +  nameKey + " exists in bucket " + bucketName+"</Message>");
            return response;
        }


        // Discover whether versioning is enabled.  If so versioning requires the setting of a deletion marker.
        String storedPath = null;
        SObjectItemVO item = null;
        int versioningStatus = sbucket.getVersioningStatus();
        if ( SBucket.VERSIONING_ENABLED == versioningStatus )
        {
            String wantVersion = request.getVersion();
            S3PolicyContext context = new S3PolicyContext( PolicyActions.DeleteObjectVersion, bucketName );
            context.setKeyName( nameKey );
            context.setEvalParam( ConditionKeys.VersionId, wantVersion );
            verifyAccess( context, "SBucket", sbucket.getId(), SAcl.PERMISSION_WRITE );

            if (null == wantVersion) {
                // If versioning is on and no versionId is given then we just write a deletion marker
                sobject.setDeletionMark( UUID.randomUUID().toString());
                objectDao.update(sobject.getId(), sobject );
                response.setResultDescription("<DeleteMarker>true</DeleteMarker><DeleteMarkerVersionId>"+ sobject.getDeletionMark() +"</DeleteMarkerVersionId>");
            }
            else
                // Otherwise remove the deletion marker if this has been set
                String deletionMarker = sobject.getDeletionMark();
                if (null != deletionMarker && wantVersion.equalsIgnoreCase( deletionMarker )) {
                    sobject.setDeletionMark( null )
                    objectDao.update(sobject.getId(), sobject )
                    response.setResultDescription("<VersionId>" + wantVersion +"</VersionId>");
                    response.setResultDescription("<DeleteMarker>true</DeleteMarker><DeleteMarkerVersionId>"+ sobject.getDeletionMark() +"</DeleteMarkerVersionId>");
                    response.setResultCode(204);
                    return response;
                }

                // If versioning is on and the versionId is given (non-null) then delete the object matching that version
                if ( null == (item = sobject.getVersion( wantVersion ))) {
                    response.setResultCode(404);
                    return response;
                }
                else {
                    // Providing versionId is non-null, then just delete the one item that matches the versionId from the database
                    storedPath = item.getStoredPath();
                    sobject.deleteItem( item.getId());
                    objectDao.update(sobject.getId(), sobject );
                    response.setResultDescription("<VersionId>" + wantVersion +"</VersionId>");
                }
            }
        }
        else
        {   // If versioning is off then we do delete the null object
            S3PolicyContext context = new S3PolicyContext( PolicyActions.DeleteObject, bucketName );
            context.setKeyName( nameKey );
            verifyAccess( context, "SBucket", sbucket.getId(), SAcl.PERMISSION_WRITE );

            if ( null == (item = sobject.getLatestVersion( true ))) {
                response.setResultCode(404);
                response.setResultDescription("<Code>AccessDenied</Code><Message>Access Denied</Message>");
                return response;
View Full Code Here

Examples of com.cloud.bridge.model.SBucketVO

        // [A] Determine that there is an applicable bucket which might have an ACL set

        String bucketName = (String)request.getAttribute(S3Constants.BUCKET_ATTR_KEY);
        String key        = (String)request.getAttribute(S3Constants.OBJECT_ATTR_KEY);

        SBucketVO bucket = bucketDao.getByName( bucketName );
        String owner = null;       
        if ( null != bucket )
            owner = bucket.getOwnerCanonicalId();
        if (null == owner)
        {
            logger.error( "ACL update failed since " + bucketName + " does not exist" );
            throw new IOException("ACL update failed");
        }
View Full Code Here

Examples of com.cloud.bridge.model.SBucketVO

        temp = request.getParameter("part-number-marker");
        if (null != temp) partMarker = Integer.parseInt( temp );


        // -> does the bucket exist, we may need it to verify access permissions
        SBucketVO bucket = bucketDao.getByName(bucketName);
        if (bucket == null) {
            logger.error( "listUploadParts failed since " + bucketName + " does not exist" );
            response.setStatus(404);
            return;
        }

        try {
            MultipartLoadDao uploadDao = new MultipartLoadDao();
            OrderedPair<String,String> exists = uploadDao.multipartExits( uploadId );
            if (null == exists) {
                response.setStatus(404);
                return;
            }
            owner = exists.getFirst();

            // -> the multipart initiator or bucket owner can do this action
            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

Examples of com.cloud.bridge.model.SBucketVO

    {
        String bucketName = (String)request.getAttribute(S3Constants.BUCKET_ATTR_KEY);
        String policy = streamToString( request.getInputStream());

        // [A] Is there an owner of an existing policy or bucket?
        SBucketVO bucket = bucketDao.getByName( bucketName );
        String owner = null;

        if ( null != bucket )
        {
            owner = bucket.getOwnerCanonicalId();
        }
        else
        {    try {
            owner = bPolicyDao.getByName(bucketName).getOwnerCanonicalID();
        }
View Full Code Here

Examples of com.cloud.bridge.model.SBucketVO

    private void executeGetBucketPolicy(HttpServletRequest request, HttpServletResponse response)
    {
        String bucketName = (String)request.getAttribute(S3Constants.BUCKET_ATTR_KEY);

        // [A] Is there an owner of an existing policy or bucket?
        SBucketVO bucket = bucketDao.getByName(bucketName);
        String owner = null;

        if (null != bucket) {
            owner = bucket.getOwnerCanonicalId();
        } else {
            try {
                owner = bPolicyDao.getByName(bucketName).getOwnerCanonicalID();
            } catch (Exception e) {
            }
View Full Code Here

Examples of com.cloud.bridge.model.SBucketVO

    private void executeDeleteBucketPolicy(HttpServletRequest request,
            HttpServletResponse response) {
        String bucketName = (String) request
                .getAttribute(S3Constants.BUCKET_ATTR_KEY);

        SBucketVO bucket = bucketDao.getByName(bucketName);
        if (bucket != null) {
            String client = UserContext.current().getCanonicalUserId();
            if (!client.equals(bucket.getOwnerCanonicalId())) {
                response.setStatus(405);
                return;
            }
        }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.