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');
|
$server = common_config('avatar', 'server');
|
||||||
if ($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);
|
return Avatar::url($this->filename);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
return $this->url;
|
return $this->url;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user