private function s3($S3_bucket = null)
 {
     if (isset(self::$s3)) {
         if (isset($S3_bucket) && self::$s3->current_bucket() !== $S3_bucket) {
             self::$s3->set_current_bucket($S3_bucket);
         }
         return self::$s3;
     }
     if (self::$options) {
         $s3 = S3_helper::get_instance();
         $s3->init(isset(self::$options['access_key']) ? self::$options['access_key'] : null, isset(self::$options['secret_key']) ? self::$options['secret_key'] : null, isset(self::$options['region']) ? self::$options['region'] : null);
         if ($s3 && isset($S3_bucket)) {
             $s3->set_current_bucket($S3_bucket);
         }
         self::$s3 = $s3;
         return $s3;
     }
     return false;
 }