From: Jean Baptiste Favre Date: Sat, 3 Sep 2011 19:11:31 +0000 (+0200) Subject: Adds new feature to dispatch avatar url between different servers. X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=98f064e4fdea8a143c207ca1b8da3e0b62b6405d;p=quix0rs-gnu-social.git Adds new feature to dispatch avatar url between different servers. That allows parallel download from most browsers. To avoid caching issue, server choice is "profile_id" based so that avatar from a specific user will always be served from same server. Introduce new configuration parameter: $config['avatar']['server_modulo'] = 5; Very easy to implement using, for example, DNS wildcard. For example, if you have following configuration: $config['avatar']['server'] = 'static_rrdns_.domain.tld'; $config['avatar']['server_modulo'] = 5; Then, when building avatar's URL, domain will become, depending on profile_id: static0.domain.tld static1.domain.tld static2.domain.tld static3.domain.tld static4.domain.tld --- diff --git a/classes/Avatar.php b/classes/Avatar.php index 6edc817685..636eb77f9c 100644 --- a/classes/Avatar.php +++ b/classes/Avatar.php @@ -103,7 +103,11 @@ class Avatar extends Memcached_DataObject { $server = common_config('avatar', 'server'); if ($server) { - return Avatar::url($this->filename); + if (common_config('avatar', 'server_modulo') && common_config('avatar', 'server_modulo') > 1 ){ + return str_replace( '_rrdns_', ( $this->profile_id % common_config('avatar', 'server_modulo') ), Avatar::url($this->filename) ); + }else{ + return Avatar::url($this->filename); + } } else { return $this->url; }