Welcome Guest, Not a member yet? Register   Sign In
Carabiner 1.4: Asset Management Library
#23

[eluser]topherdan1[/eluser]
I think I have Amazon S3/CDN integration with Caribinner working pretty well now. Here are the steps I took:

1. Add an S3 library to your application/libraries folder. I used the one available here: http://undesigned.org.za/2007/10/22/amazon-s3-php-class and then customized it so that it pulled the variables from my config file. The only thing I changed in the S3.php file (which is the one to add to application/libraries) was the __construct on line 57 so that it looked like this:
Code:
public function __construct($accessKey = null, $secretKey = null, $useSSL = true) {
      //Start Customizations
      $this->CI = get_instance();
    $accessKey = $this->CI->config->item('key_id');
    $secretKey = $this->CI->config->item('secret_key');
    //End Customizations
        if ($accessKey !== null && $secretKey !== null)
            self::setAuth($accessKey, $secretKey);
        self::$useSSL = $useSSL;
    }

2. Next, update the carabiner config file with the following variables
Code:
$config['key_id'] = 'XXXXXXXX'; //Your Amazon key_id
$config['secret_key'] = 'XXXXX'; //Your Amazon secret_key
$config['cdn_bucket'] = 'yourcdnbucket'; //The bucket that will act as your CDN
$config['use_cdn'] = TRUE; //Enabling the CDN functions in carabiner
$config['cdn_url'] = 'http://cdn.example.com/'; //The URL used to access your CDN

3. Finally, modify the carabiner library in two spots:
The _cache function should look like this:
Code:
private function _cache($filename, $file_data)
    {

        $filepath = $this->cache_path . $filename;
        $success = file_put_contents( $filepath, $file_data );

        if($success) :
            log_message('debug', 'Carabiner: Cache file '.$filename.' was written to '.$this->cache_path);
      
      if($this->CI->config->item('use_cdn') == TRUE)
      {
        //If it's a production environment, move the file to the Amazon S3 CDN bucket
        if($this->dev == FALSE)
        {
          $this->CI->load->library('S3');
          $this->CI->s3->putObjectFile($filepath, $this->CI->config->item('cdn_bucket'), $this->cache_dir.$filename, S3::ACL_PUBLIC_READ);
        }
      }

      
            return TRUE;
        else :
            log_message('error', 'Carabiner: There was an error writing cache file '.$filename.' to '.$this->cache_path);
            return FALSE;
        endif;
    }
The _tag function should look like this:
Code:
private function _tag($flag, $ref, $cache = FALSE, $media = 'screen')
    {

        switch($flag){
        
            case 'css':
                
                $dir = ( $this->isURL($ref) ) ? '' : ( ($cache) ? $this->cache_uri : $this->style_uri );
        
        if($this->CI->config->item('use_cdn') === TRUE && $this->dev == FALSE)
        {
          $dir = $this->CI->config->item('cdn_url').$this->cache_dir;
        }
                
                return '<link type="text/css" rel="stylesheet" href="'.$dir.$ref.'" media="'.$media.'" />'."\r\n";
            
            break;

            case 'js':
                
                $dir = ( $this->isURL($ref) ) ? '' : ( ($cache) ? $this->cache_uri : $this->script_uri );
                
        if($this->CI->config->item('use_cdn') === TRUE && $this->dev == FALSE)
        {
          $dir = $this->CI->config->item('cdn_url').$this->cache_dir;
        }
        
                return '[removed]CI->config->item('charset').'">[removed]'."\r\n";
            
            break;
        
        }
    
    }

That should be it. Now when you are in a production environment, anytime a new cache file is created it will automatically be loaded into Amazon S3, which can act as a CDN. Then, on the site, the files use the CDN domain instead of the normal domain. Let me know if you have suggestions on how to improve this.


Messages In This Thread
Carabiner 1.4: Asset Management Library - by El Forum - 06-01-2009, 12:30 PM
Carabiner 1.4: Asset Management Library - by El Forum - 06-01-2009, 10:13 PM
Carabiner 1.4: Asset Management Library - by El Forum - 06-02-2009, 08:20 AM
Carabiner 1.4: Asset Management Library - by El Forum - 06-02-2009, 08:28 AM
Carabiner 1.4: Asset Management Library - by El Forum - 06-02-2009, 08:32 AM
Carabiner 1.4: Asset Management Library - by El Forum - 06-02-2009, 08:34 AM
Carabiner 1.4: Asset Management Library - by El Forum - 06-02-2009, 08:56 AM
Carabiner 1.4: Asset Management Library - by El Forum - 06-02-2009, 09:03 AM
Carabiner 1.4: Asset Management Library - by El Forum - 06-04-2009, 04:35 PM
Carabiner 1.4: Asset Management Library - by El Forum - 06-04-2009, 05:59 PM
Carabiner 1.4: Asset Management Library - by El Forum - 06-04-2009, 06:31 PM
Carabiner 1.4: Asset Management Library - by El Forum - 06-10-2009, 04:39 AM
Carabiner 1.4: Asset Management Library - by El Forum - 06-10-2009, 05:54 AM
Carabiner 1.4: Asset Management Library - by El Forum - 06-15-2009, 04:26 AM
Carabiner 1.4: Asset Management Library - by El Forum - 06-15-2009, 04:36 AM
Carabiner 1.4: Asset Management Library - by El Forum - 06-19-2009, 01:36 PM
Carabiner 1.4: Asset Management Library - by El Forum - 06-19-2009, 01:52 PM
Carabiner 1.4: Asset Management Library - by El Forum - 06-19-2009, 02:01 PM
Carabiner 1.4: Asset Management Library - by El Forum - 06-19-2009, 05:17 PM
Carabiner 1.4: Asset Management Library - by El Forum - 06-20-2009, 04:56 AM
Carabiner 1.4: Asset Management Library - by El Forum - 06-20-2009, 09:47 AM
Carabiner 1.4: Asset Management Library - by El Forum - 06-22-2009, 10:04 AM
Carabiner 1.4: Asset Management Library - by El Forum - 06-22-2009, 12:26 PM
Carabiner 1.4: Asset Management Library - by El Forum - 06-24-2009, 07:59 AM
Carabiner 1.4: Asset Management Library - by El Forum - 06-25-2009, 06:31 AM
Carabiner 1.4: Asset Management Library - by El Forum - 06-25-2009, 09:44 PM
Carabiner 1.4: Asset Management Library - by El Forum - 06-26-2009, 10:12 AM
Carabiner 1.4: Asset Management Library - by El Forum - 07-04-2009, 05:48 AM
Carabiner 1.4: Asset Management Library - by El Forum - 07-13-2009, 11:21 PM
Carabiner 1.4: Asset Management Library - by El Forum - 07-13-2009, 11:35 PM
Carabiner 1.4: Asset Management Library - by El Forum - 07-13-2009, 11:49 PM
Carabiner 1.4: Asset Management Library - by El Forum - 07-13-2009, 11:58 PM
Carabiner 1.4: Asset Management Library - by El Forum - 07-14-2009, 07:25 AM
Carabiner 1.4: Asset Management Library - by El Forum - 07-14-2009, 10:25 AM
Carabiner 1.4: Asset Management Library - by El Forum - 07-14-2009, 10:53 AM
Carabiner 1.4: Asset Management Library - by El Forum - 07-22-2009, 05:00 PM
Carabiner 1.4: Asset Management Library - by El Forum - 07-23-2009, 02:04 AM
Carabiner 1.4: Asset Management Library - by El Forum - 07-23-2009, 07:13 AM
Carabiner 1.4: Asset Management Library - by El Forum - 07-23-2009, 08:07 AM
Carabiner 1.4: Asset Management Library - by El Forum - 07-24-2009, 12:03 PM
Carabiner 1.4: Asset Management Library - by El Forum - 07-24-2009, 12:14 PM
Carabiner 1.4: Asset Management Library - by El Forum - 07-24-2009, 12:16 PM
Carabiner 1.4: Asset Management Library - by El Forum - 07-24-2009, 04:04 PM
Carabiner 1.4: Asset Management Library - by El Forum - 07-24-2009, 04:23 PM
Carabiner 1.4: Asset Management Library - by El Forum - 07-24-2009, 07:43 PM
Carabiner 1.4: Asset Management Library - by El Forum - 07-25-2009, 12:01 PM
Carabiner 1.4: Asset Management Library - by El Forum - 07-25-2009, 06:30 PM
Carabiner 1.4: Asset Management Library - by El Forum - 07-30-2009, 11:32 AM
Carabiner 1.4: Asset Management Library - by El Forum - 07-30-2009, 02:20 PM
Carabiner 1.4: Asset Management Library - by El Forum - 07-30-2009, 02:37 PM
Carabiner 1.4: Asset Management Library - by El Forum - 07-30-2009, 04:06 PM
Carabiner 1.4: Asset Management Library - by El Forum - 07-30-2009, 06:54 PM
Carabiner 1.4: Asset Management Library - by El Forum - 07-31-2009, 04:56 AM
Carabiner 1.4: Asset Management Library - by El Forum - 07-31-2009, 05:41 AM
Carabiner 1.4: Asset Management Library - by El Forum - 07-31-2009, 05:47 AM
Carabiner 1.4: Asset Management Library - by El Forum - 07-31-2009, 05:51 AM
Carabiner 1.4: Asset Management Library - by El Forum - 08-26-2009, 07:48 AM
Carabiner 1.4: Asset Management Library - by El Forum - 08-26-2009, 08:02 AM
Carabiner 1.4: Asset Management Library - by El Forum - 08-27-2009, 06:48 AM
Carabiner 1.4: Asset Management Library - by El Forum - 08-31-2009, 02:37 PM
Carabiner 1.4: Asset Management Library - by El Forum - 08-31-2009, 02:50 PM
Carabiner 1.4: Asset Management Library - by El Forum - 08-31-2009, 04:22 PM
Carabiner 1.4: Asset Management Library - by El Forum - 09-04-2009, 09:48 AM
Carabiner 1.4: Asset Management Library - by El Forum - 09-04-2009, 10:00 AM
Carabiner 1.4: Asset Management Library - by El Forum - 09-04-2009, 11:57 AM
Carabiner 1.4: Asset Management Library - by El Forum - 09-04-2009, 12:13 PM
Carabiner 1.4: Asset Management Library - by El Forum - 09-04-2009, 12:14 PM
Carabiner 1.4: Asset Management Library - by El Forum - 09-04-2009, 12:30 PM
Carabiner 1.4: Asset Management Library - by El Forum - 09-04-2009, 12:33 PM
Carabiner 1.4: Asset Management Library - by El Forum - 09-04-2009, 12:38 PM
Carabiner 1.4: Asset Management Library - by El Forum - 09-04-2009, 12:48 PM
Carabiner 1.4: Asset Management Library - by El Forum - 09-04-2009, 12:58 PM
Carabiner 1.4: Asset Management Library - by El Forum - 09-12-2009, 02:09 AM
Carabiner 1.4: Asset Management Library - by El Forum - 09-16-2009, 01:31 PM
Carabiner 1.4: Asset Management Library - by El Forum - 09-20-2009, 02:38 PM
Carabiner 1.4: Asset Management Library - by El Forum - 10-06-2009, 01:52 PM
Carabiner 1.4: Asset Management Library - by El Forum - 10-08-2009, 06:29 AM
Carabiner 1.4: Asset Management Library - by El Forum - 10-10-2009, 10:20 AM
Carabiner 1.4: Asset Management Library - by El Forum - 10-10-2009, 10:31 AM
Carabiner 1.4: Asset Management Library - by El Forum - 10-10-2009, 06:54 PM
Carabiner 1.4: Asset Management Library - by El Forum - 10-11-2009, 08:08 AM
Carabiner 1.4: Asset Management Library - by El Forum - 10-11-2009, 07:21 PM
Carabiner 1.4: Asset Management Library - by El Forum - 10-12-2009, 12:50 PM
Carabiner 1.4: Asset Management Library - by El Forum - 10-13-2009, 10:29 AM
Carabiner 1.4: Asset Management Library - by El Forum - 10-13-2009, 11:41 AM
Carabiner 1.4: Asset Management Library - by El Forum - 10-17-2009, 02:02 PM
Carabiner 1.4: Asset Management Library - by El Forum - 10-18-2009, 02:13 AM
Carabiner 1.4: Asset Management Library - by El Forum - 10-18-2009, 02:27 AM
Carabiner 1.4: Asset Management Library - by El Forum - 10-18-2009, 05:27 PM
Carabiner 1.4: Asset Management Library - by El Forum - 10-18-2009, 05:40 PM
Carabiner 1.4: Asset Management Library - by El Forum - 10-19-2009, 01:10 AM
Carabiner 1.4: Asset Management Library - by El Forum - 10-19-2009, 07:04 AM
Carabiner 1.4: Asset Management Library - by El Forum - 10-26-2009, 05:59 AM
Carabiner 1.4: Asset Management Library - by El Forum - 11-02-2009, 01:28 PM
Carabiner 1.4: Asset Management Library - by El Forum - 11-03-2009, 05:04 PM
Carabiner 1.4: Asset Management Library - by El Forum - 11-03-2009, 05:13 PM
Carabiner 1.4: Asset Management Library - by El Forum - 11-03-2009, 06:12 PM
Carabiner 1.4: Asset Management Library - by El Forum - 11-04-2009, 10:48 AM
Carabiner 1.4: Asset Management Library - by El Forum - 11-04-2009, 12:52 PM
Carabiner 1.4: Asset Management Library - by El Forum - 11-04-2009, 01:53 PM
Carabiner 1.4: Asset Management Library - by El Forum - 12-07-2009, 09:46 AM
Carabiner 1.4: Asset Management Library - by El Forum - 12-07-2009, 10:38 AM
Carabiner 1.4: Asset Management Library - by El Forum - 12-07-2009, 10:42 AM
Carabiner 1.4: Asset Management Library - by El Forum - 12-07-2009, 10:47 AM
Carabiner 1.4: Asset Management Library - by El Forum - 12-07-2009, 10:56 AM
Carabiner 1.4: Asset Management Library - by El Forum - 12-07-2009, 11:04 AM
Carabiner 1.4: Asset Management Library - by El Forum - 12-07-2009, 11:13 AM
Carabiner 1.4: Asset Management Library - by El Forum - 12-07-2009, 11:32 AM
Carabiner 1.4: Asset Management Library - by El Forum - 12-07-2009, 11:45 AM
Carabiner 1.4: Asset Management Library - by El Forum - 12-10-2009, 01:48 AM
Carabiner 1.4: Asset Management Library - by El Forum - 12-10-2009, 03:07 AM
Carabiner 1.4: Asset Management Library - by El Forum - 12-10-2009, 03:31 AM
Carabiner 1.4: Asset Management Library - by El Forum - 12-11-2009, 08:36 PM
Carabiner 1.4: Asset Management Library - by El Forum - 12-14-2009, 06:56 AM
Carabiner 1.4: Asset Management Library - by El Forum - 12-21-2009, 07:30 AM
Carabiner 1.4: Asset Management Library - by El Forum - 01-20-2010, 12:27 AM
Carabiner 1.4: Asset Management Library - by El Forum - 01-20-2010, 11:22 AM
Carabiner 1.4: Asset Management Library - by El Forum - 01-26-2010, 02:01 PM
Carabiner 1.4: Asset Management Library - by El Forum - 02-11-2010, 01:20 PM
Carabiner 1.4: Asset Management Library - by El Forum - 03-27-2010, 08:54 PM
Carabiner 1.4: Asset Management Library - by El Forum - 03-28-2010, 01:02 PM
Carabiner 1.4: Asset Management Library - by El Forum - 04-21-2010, 01:48 AM
Carabiner 1.4: Asset Management Library - by El Forum - 04-21-2010, 12:13 PM
Carabiner 1.4: Asset Management Library - by El Forum - 04-22-2010, 09:06 AM
Carabiner 1.4: Asset Management Library - by El Forum - 04-22-2010, 09:21 AM
Carabiner 1.4: Asset Management Library - by El Forum - 04-22-2010, 12:41 PM
Carabiner 1.4: Asset Management Library - by El Forum - 04-22-2010, 01:47 PM
Carabiner 1.4: Asset Management Library - by El Forum - 04-22-2010, 01:58 PM
Carabiner 1.4: Asset Management Library - by El Forum - 04-22-2010, 06:56 PM
Carabiner 1.4: Asset Management Library - by El Forum - 04-23-2010, 03:44 AM
Carabiner 1.4: Asset Management Library - by El Forum - 04-28-2010, 01:43 AM
Carabiner 1.4: Asset Management Library - by El Forum - 05-01-2010, 03:25 PM
Carabiner 1.4: Asset Management Library - by El Forum - 06-02-2010, 07:10 AM
Carabiner 1.4: Asset Management Library - by El Forum - 06-08-2010, 10:39 AM
Carabiner 1.4: Asset Management Library - by El Forum - 06-17-2010, 08:39 AM
Carabiner 1.4: Asset Management Library - by El Forum - 06-17-2010, 09:30 AM
Carabiner 1.4: Asset Management Library - by El Forum - 06-17-2010, 09:55 AM
Carabiner 1.4: Asset Management Library - by El Forum - 07-05-2010, 08:58 PM
Carabiner 1.4: Asset Management Library - by El Forum - 07-06-2010, 06:35 AM
Carabiner 1.4: Asset Management Library - by El Forum - 07-06-2010, 09:47 AM
Carabiner 1.4: Asset Management Library - by El Forum - 07-06-2010, 10:01 AM
Carabiner 1.4: Asset Management Library - by El Forum - 07-06-2010, 10:10 AM
Carabiner 1.4: Asset Management Library - by El Forum - 07-21-2010, 07:41 AM
Carabiner 1.4: Asset Management Library - by El Forum - 07-21-2010, 09:40 AM
Carabiner 1.4: Asset Management Library - by El Forum - 07-28-2010, 10:29 AM
Carabiner 1.4: Asset Management Library - by El Forum - 08-04-2010, 04:16 PM
Carabiner 1.4: Asset Management Library - by El Forum - 08-04-2010, 04:26 PM
Carabiner 1.4: Asset Management Library - by El Forum - 08-04-2010, 04:28 PM
Carabiner 1.4: Asset Management Library - by El Forum - 08-04-2010, 08:53 PM
Carabiner 1.4: Asset Management Library - by El Forum - 08-05-2010, 06:06 AM
Carabiner 1.4: Asset Management Library - by El Forum - 08-05-2010, 08:51 AM
Carabiner 1.4: Asset Management Library - by El Forum - 08-06-2010, 03:09 AM
Carabiner 1.4: Asset Management Library - by El Forum - 08-06-2010, 04:56 AM
Carabiner 1.4: Asset Management Library - by El Forum - 08-09-2010, 07:07 PM
Carabiner 1.4: Asset Management Library - by El Forum - 08-09-2010, 07:16 PM
Carabiner 1.4: Asset Management Library - by El Forum - 08-10-2010, 08:48 AM
Carabiner 1.4: Asset Management Library - by El Forum - 09-20-2010, 08:06 PM
Carabiner 1.4: Asset Management Library - by El Forum - 09-20-2010, 08:16 PM
Carabiner 1.4: Asset Management Library - by El Forum - 09-21-2010, 04:39 PM
Carabiner 1.4: Asset Management Library - by El Forum - 10-28-2010, 10:31 AM
Carabiner 1.4: Asset Management Library - by El Forum - 10-28-2010, 02:16 PM
Carabiner 1.4: Asset Management Library - by El Forum - 10-28-2010, 02:36 PM
Carabiner 1.4: Asset Management Library - by El Forum - 11-24-2010, 07:18 AM
Carabiner 1.4: Asset Management Library - by El Forum - 11-24-2010, 07:38 AM
Carabiner 1.4: Asset Management Library - by El Forum - 11-24-2010, 07:43 AM
Carabiner 1.4: Asset Management Library - by El Forum - 11-24-2010, 07:53 AM
Carabiner 1.4: Asset Management Library - by El Forum - 11-24-2010, 08:09 AM
Carabiner 1.4: Asset Management Library - by El Forum - 11-24-2010, 08:18 AM
Carabiner 1.4: Asset Management Library - by El Forum - 11-24-2010, 08:21 AM
Carabiner 1.4: Asset Management Library - by El Forum - 11-24-2010, 08:28 AM
Carabiner 1.4: Asset Management Library - by El Forum - 11-24-2010, 08:57 AM
Carabiner 1.4: Asset Management Library - by El Forum - 12-01-2010, 08:35 AM
Carabiner 1.4: Asset Management Library - by El Forum - 12-01-2010, 09:00 AM
Carabiner 1.4: Asset Management Library - by El Forum - 12-17-2010, 02:53 PM
Carabiner 1.4: Asset Management Library - by El Forum - 12-17-2010, 11:56 PM
Carabiner 1.4: Asset Management Library - by El Forum - 01-04-2011, 01:39 AM
Carabiner 1.4: Asset Management Library - by El Forum - 01-30-2011, 02:25 PM
Carabiner 1.4: Asset Management Library - by El Forum - 02-19-2011, 11:25 PM
Carabiner 1.4: Asset Management Library - by El Forum - 02-24-2011, 02:11 AM
Carabiner 1.4: Asset Management Library - by El Forum - 05-22-2011, 03:05 AM
Carabiner 1.4: Asset Management Library - by El Forum - 07-06-2011, 01:10 PM
Carabiner 1.4: Asset Management Library - by El Forum - 07-20-2011, 09:54 AM
Carabiner 1.4: Asset Management Library - by El Forum - 07-20-2011, 10:54 AM
Carabiner 1.4: Asset Management Library - by El Forum - 02-27-2012, 07:32 AM
Carabiner 1.4: Asset Management Library - by El Forum - 03-01-2012, 09:47 AM
Carabiner 1.4: Asset Management Library - by El Forum - 03-02-2012, 02:30 AM
Carabiner 1.4: Asset Management Library - by El Forum - 04-17-2012, 08:33 AM
Carabiner 1.4: Asset Management Library - by El Forum - 05-01-2012, 03:29 AM
Carabiner 1.4: Asset Management Library - by El Forum - 05-09-2012, 02:32 PM
Carabiner 1.4: Asset Management Library - by El Forum - 05-10-2012, 10:39 AM
Carabiner 1.4: Asset Management Library - by El Forum - 05-13-2012, 03:31 AM
Carabiner 1.4: Asset Management Library - by El Forum - 05-13-2012, 06:01 AM
Carabiner 1.4: Asset Management Library - by El Forum - 05-13-2012, 08:39 AM
Carabiner 1.4: Asset Management Library - by El Forum - 05-21-2013, 08:34 AM



Theme © iAndrew 2016 - Forum software by © MyBB