MediaWiki uploads on Linode object storage with Extension:AWS
I run self-hosted MediaWiki and put uploads in Linode Object Storage instead of serving them from disk. Linode is cheaper than AWS for my stack, and the AWS extension works with Linode’s S3-compatible API.
Cost
Linode Block Storage is $0.10/GB/mo; Object Storage is $0.02/GB/mo with a $5/mo minimum while stored data is under 250 GB (Akamai Cloud pricing). Fifty GB of block is $5/mo—same as that object floor—past 50 GB block keeps climbing at $0.10/GB while object stays $5/mo until 250 GB, then $0.02/GB. It's like 5 times cheaper than block storage.
Extension:AWS configuration for Linode
My LocalSettings.php files look something like this:
wfLoadExtension( 'AWS' );
$wgAWSCredentials = [
'key' => getenv( 'LINODE_OBJECT_STORAGE_ACCESS_KEY' ) ?: '',
'secret' => getenv( 'LINODE_OBJECT_STORAGE_SECRET_KEY' ) ?: '',
'token' => false,
];
$wgAWSBucketName = 'mywikifarm';
$wgAWSBucketDomain = 'https://us-east-1.linodeobjects.com/mywikifarm';
$wgAWSBucketTopSubdirectory = '/thiswiki/files';
$wgAWSRegion = 'us-east';
$wgFileBackends['s3']['endpoint'] = 'https://us-east-1.linodeobjects.com';
$wgFileBackends['s3']['use_path_style_endpoint'] = true;
$wgHashedUploadDirectory = false;