Package com.cloud.bridge.model

Examples of com.cloud.bridge.model.SBucketVO


    String delimiter = request.getDelimiter();
    int maxKeys = request.getMaxKeys();
    if(maxKeys <= 0) maxKeys = 1000;
   
    //
    SBucketVO sbucket = bucketDao.getByName(bucketName);
    if (sbucket == null) throw new NoSuchObjectException("Bucket " + bucketName + " does not exist");

    PolicyActions action = (includeVersions ? PolicyActions.ListBucketVersions : PolicyActions.ListBucket);
    S3PolicyContext context = new S3PolicyContext( action, bucketName );
    context.setEvalParam( ConditionKeys.MaxKeys, new String( "" + maxKeys ));
    context.setEvalParam( ConditionKeys.Prefix, prefix );
    context.setEvalParam( ConditionKeys.Delimiter, delimiter );
    verifyAccess( context, "SBucket", sbucket.getId(), SAcl.PERMISSION_READ );

   
    // Wen execting the query, request one more item so that we know how to set isTruncated flag
    List<SObjectVO> l = null;
   
View Full Code Here


   
    public S3Response handleRequest(S3SetBucketAccessControlPolicyRequest request)
    {
      S3Response response = new S3Response()
      String bucketName = request.getBucketName();
      SBucketVO sbucket = bucketDao.getByName(bucketName);
      if(sbucket == null) {
        response.setResultCode(404);
        response.setResultDescription("Bucket does not exist");
        return response;
      }
     
      S3PolicyContext context = new S3PolicyContext( PolicyActions.PutBucketAcl, bucketName );
      verifyAccess( context, "SBucket", sbucket.getId(), SAcl.PERMISSION_WRITE_ACL );

      aclDao.save("SBucket", sbucket.getId(), request.getAcl());
    
      response.setResultCode(200);
      response.setResultDescription("OK");
      return response;
    }
View Full Code Here

   
    public S3AccessControlPolicy handleRequest(S3GetBucketAccessControlPolicyRequest request)
    {
      S3AccessControlPolicy policy = new S3AccessControlPolicy();    
      String bucketName = request.getBucketName();
      SBucketVO sbucket = bucketDao.getByName( bucketName );
      if (sbucket == null)
        throw new NoSuchObjectException("Bucket " + bucketName + " does not exist");
     
      S3CanonicalUser owner = new S3CanonicalUser();
      owner.setID(sbucket.getOwnerCanonicalId());
      owner.setDisplayName("");
      policy.setOwner(owner);
     
      S3PolicyContext context = new S3PolicyContext( PolicyActions.GetBucketAcl, bucketName );
      verifyAccess( context, "SBucket", sbucket.getId(), SAcl.PERMISSION_READ_ACL );


      List<SAclVO> grants = aclDao.listGrants("SBucket", sbucket.getId());
      policy.setGrants(S3Grant.toGrants(grants));   
      return policy;
    }
View Full Code Here

    public int freeUploadParts(String bucketName, int uploadId, boolean verifyPermission) {
 
  // -> we need to look up the final bucket to figure out which mount
  // point to use to save the part in
  // SBucketDao bucketDao = new SBucketDao();
  SBucketVO bucket = bucketDao.getByName(bucketName);
  if (bucket == null) {
      logger.error("initiateMultipartUpload failed since " + bucketName
        + " does not exist");
      return 404;
  }

  OrderedPair<SHostVO, String> host_storagelocation_pair = getBucketStorageHost(bucket);
  S3BucketAdapter bucketAdapter = getStorageHostBucketAdapter(host_storagelocation_pair.getFirst());

  try {
      MultipartLoadDao uploadDao = new MultipartLoadDao();
      OrderedPair<String, String> exists = uploadDao.multipartExits(uploadId);
     
      if (null == exists) {
    logger.error("initiateMultipartUpload failed since multipart upload"
      + uploadId + " does not exist");
    return 404;
      }

      // -> the multipart initiator or bucket owner can do this action by
      // default
      if (verifyPermission) {
    String initiator = uploadDao.getInitiator(uploadId);
    if (null == initiator
      || !initiator.equals(UserContext.current()
        .getAccessKey())) {
        // -> write permission on a bucket allows a PutObject /
        // DeleteObject action on any object in the bucket
        S3PolicyContext context = new S3PolicyContext(
          PolicyActions.AbortMultipartUpload, bucketName);
        context.setKeyName(exists.getSecond());
        verifyAccess(context, "SBucket", bucket.getId(),
          SAcl.PERMISSION_WRITE);
    }
      }

      // -> first get a list of all the uploaded files and delete one by
View Full Code Here

      S3PutObjectInlineResponse response = new S3PutObjectInlineResponse()
    String bucketName = request.getBucketName();
    String nameKey = request.getKey();

    // -> does the bucket exist and can we write to it?
    SBucketVO bucket = bucketDao.getByName(bucketName);
    if (bucket == null) {
      logger.error( "initiateMultipartUpload failed since " + bucketName + " does not exist" );
      response.setResultCode(404);
    }
     
    S3PolicyContext context = new S3PolicyContext( PolicyActions.PutObject, bucketName );
    context.setKeyName( nameKey );
    context.setEvalParam( ConditionKeys.Acl, request.getCannedAccess());
    verifyAccess( context, "SBucket", bucket.getId(), SAcl.PERMISSION_WRITE );

    createUploadFolder( bucketName );

        try {
          MultipartLoadDao uploadDao = new MultipartLoadDao();
View Full Code Here

      S3PutObjectInlineResponse response = new S3PutObjectInlineResponse()
    String bucketName = request.getBucketName();

    // -> we need to look up the final bucket to figure out which mount point to use to save the part in
    //SBucketDao bucketDao = new SBucketDao();
    SBucketVO bucket = bucketDao.getByName(bucketName);
    if (bucket == null) {
      logger.error( "saveUploadedPart failed since " + bucketName + " does not exist" );
      response.setResultCode(404);
    }
    S3PolicyContext context = new S3PolicyContext( PolicyActions.PutObject, bucketName );
    context.setKeyName( request.getKey());
    verifyAccess( context, "SBucket", bucket.getId(), SAcl.PERMISSION_WRITE );
   
    OrderedPair<SHostVO, String> host_storagelocation_pair = getBucketStorageHost(bucket);   
    S3BucketAdapter bucketAdapter = getStorageHostBucketAdapter(host_storagelocation_pair.getFirst());
    String itemFileName = new String( uploadId + "-" + partNumber );
    InputStream is = null;
View Full Code Here

  S3PutObjectInlineResponse response = new S3PutObjectInlineResponse();
  String bucketName = request.getBucketName();
  String key = request.getKey();
  S3MetaDataEntry[] meta = request.getMetaEntries();

  SBucketVO bucket = bucketDao.getByName(bucketName);
  if (bucket == null) {
      logger.error("completeMultipartUpload( failed since " + bucketName
        + " does not exist");
      response.setResultCode(404);
  }

  // [B] Now we need to create the final re-assembled object
  // -> the allocObjectItem checks for the bucket policy PutObject
  // permissions
  OrderedPair<SObjectVO, SObjectItemVO> object_objectitem_pair = allocObjectItem(
    bucket, key, meta, null, request.getCannedAccess());
  OrderedPair<SHostVO, String> host_storagelocation_pair = getBucketStorageHost(bucket);

  S3BucketAdapter bucketAdapter = getStorageHostBucketAdapter(host_storagelocation_pair
    .getFirst());
  String itemFileName = object_objectitem_pair.getSecond()
    .getStoredPath();

  // -> Amazon defines that we must return a 200 response immediately to
  // the client, but
  // -> we don't know the version header until we hit here
  httpResp.setStatus(200);
  httpResp.setContentType("text/xml; charset=UTF-8");
  String version = object_objectitem_pair.getSecond().getVersion();
  if (null != version)
      httpResp.addHeader("x-amz-version-id", version);
  httpResp.flushBuffer();
  Transaction txn = Transaction.open(Transaction.AWSAPI_DB);
  // [C] Re-assemble the object from its uploaded file parts
  try {
      // explicit transaction control to avoid holding transaction during
      // long file concatenation process
      txn.start();
      OrderedPair<String, Long> result = bucketAdapter
              .concatentateObjects(host_storagelocation_pair.getSecond(),
                      bucket.getName(), itemFileName, ServiceProvider
                      .getInstance().getMultipartDir(), parts,
                      outputStream);
     
            response.setETag(result.getFirst());
            response.setLastModified(DateHelper.toCalendar(object_objectitem_pair.getSecond().getLastModifiedTime()));
View Full Code Here

    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, request.getCannedAccess());
    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.getDataInputStream();
      String md5Checksum = bucketAdapter.saveObject(is, host_storagelocation_pair.getSecond(), bucket.getName(), itemFileName);
      response.setETag(md5Checksum);
      response.setLastModified(DateHelper.toCalendar( object_objectitem_pair.getSecond().getLastModifiedTime()));
          response.setVersion( object_objectitem_pair.getSecond().getVersion());
   
      //SObjectItemDaoImpl itemDao = new SObjectItemDaoImpl();
View Full Code Here

    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

      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

TOP

Related Classes of com.cloud.bridge.model.SBucketVO

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.