mirror of
				https://git.cloudron.io/cloudron/minio-app
				synced 2025-11-03 16:42:35 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env node
 | 
						|
 | 
						|
'use strict';
 | 
						|
 | 
						|
const fs = require('fs');
 | 
						|
 | 
						|
const MINIO_CONFIG = '/app/data/data/.minio.sys/config/config.json';
 | 
						|
 | 
						|
function usage() {
 | 
						|
    console.log('Usage:\n');
 | 
						|
    console.log('\tminio-credentials get');
 | 
						|
    console.log('\tminio-credentials set <access key> <secret key>');
 | 
						|
    console.log();
 | 
						|
}
 | 
						|
 | 
						|
let config = JSON.parse(fs.readFileSync(MINIO_CONFIG, 'utf8'));
 | 
						|
let adminCredentials = config['credentials']['_'];
 | 
						|
let accessKey = adminCredentials.filter(kv => kv.key === 'access_key')[0];
 | 
						|
let secretKey = adminCredentials.filter(kv => kv.key === 'secret_key')[0];
 | 
						|
 | 
						|
if (process.argv[2] === 'get') {
 | 
						|
    console.log('Access Key:', accessKey.value);
 | 
						|
    console.log('Secret Key:', secretKey.value);
 | 
						|
} else if (process.argv[2] === 'set') {
 | 
						|
    if (process.argv.length !== 5) return usage();
 | 
						|
 | 
						|
    // https://docs.aws.amazon.com/IAM/latest/APIReference/API_CreateAccessKey.html
 | 
						|
    if (process.argv[4].length < 5) return console.log('secret key must be atleast 5 characters');
 | 
						|
    if (!/^[\w+=,.@-]+$/.test(process.argv[3])) return console.log('access key has invalid characters');
 | 
						|
 | 
						|
    accessKey.value = process.argv[3];
 | 
						|
    if (process.argv[4].length < 8) return console.log('secret key must be atleast 8 characters');
 | 
						|
 | 
						|
    secretKey.value = process.argv[4];
 | 
						|
 | 
						|
    fs.writeFileSync(MINIO_CONFIG, JSON.stringify(config), 'utf8');
 | 
						|
    console.log('Credentials updated. Restart minio app for new credentials to take effect.\n');
 | 
						|
} else {
 | 
						|
    usage();
 | 
						|
}
 | 
						|
 |