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
This commit is contained in:
parent
afd42611a3
commit
98f064e4fd
@ -103,7 +103,11 @@ class Avatar extends Memcached_DataObject
|
||||
{
|
||||
$server = common_config('avatar', 'server');
|
||||
if ($server) {
|
||||
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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user