Tovább a tartalomhoz

Tárhely-hitelesítő adatok tárolása fájlban

Hogyan tárold az Amazon S3 kulcsokat vagy az FTP-adatokat az adatbázis helyett egy mu-plugin fájlban.

Előfordul, hogy a távoli tárhely hitelesítő adatait (például az Amazon S3 kulcsokat vagy az FTP-bejelentkezést) nem az adatbázisban, hanem fájlban szeretnéd tárolni. Ezt egy mu-plugin segítségével oldhatod meg.

  1. Nézd meg, van-e mu-plugins nevű mappa a WordPress wp-content mappájában. Ha nincs, hozd létre.
  2. Hozz létre benne egy tetszőleges nevű, .php végű fájlt, például wp-content/mu-plugins/define_udp_api_keys.php.
  3. Másold bele az alábbi példák egyikét, és írd át a kulcsokat a sajátjaidra.

Ha átnevezted a WordPress alapértelmezett mappáit (például a wp-content mappát), az elérési utakat ennek megfelelően igazítsd.

Ha a fájlban hiba van, az egész oldal elfehéredhet („white screen of death”). Ilyenkor töröld a fájlt, vagy javítsd ki a hibát, és az oldal visszatér.

A kód a get_s3_user_settings függvényben tárolt hozzáférési és titkos kulcsot használja. Csak ebben a függvényben kell szerkesztened: a test_key és a test_secret_key helyére írd a saját kulcsaidat. Ha több S3-példányod van, a tömb következő elemébe írd a második kulcspárt, és további példányoknál vegyél fel újabb elemet ugyanebben a formában. A példa két S3-fiókot kezel.

<?php
add_filter('updraftplus_get_option', 'get_stored_s3_options', 10, 3);
add_filter('updraftplus_update_option', 'update_stored_s3_options', 10, 3);
// Futásidőben beilleszti a kulcsokat, amikor szükség van rájuk.
function get_stored_s3_options($ret, $option, $default) {
if ('updraft_s3' != $option || empty($ret['settings'])) return $ret;
$user_settings = get_s3_user_settings();
foreach ($ret['settings'] as $instance => $options) {
$settings = array_shift($user_settings);
$ret['settings'][$instance]['accesskey'] = $settings['accesskey'];
$ret['settings'][$instance]['secretkey'] = $settings['secretkey'];
}
return $ret;
}
// Gondoskodik róla, hogy semmi ne kerüljön az adatbázisba.
function update_stored_s3_options($value, $option, $use_cache) {
if ('updraft_s3' != $option || empty($value['settings'])) return $value;
foreach ($value['settings'] as $instance => $options) {
$value['settings'][$instance]['accesskey'] = '';
$value['settings'][$instance]['secretkey'] = '';
}
return $value;
}
// Ide írd a használni kívánt kulcsokat.
function get_s3_user_settings() {
return array(
// az 1. példány beállításai
0 => array(
'accesskey' => 'test_key',
'secretkey' => 'test_secret_key'
),
// a 2. példány beállításai
1 => array(
'accesskey' => 'test_key_2',
'secretkey' => 'test_secret_key_2'
)
);
}

Ezután az API-kulcsaid a fájlban vannak, az adatbázisban nem.

Ugyanez FTP-hez. A bejelentkezési nevet és a jelszót a get_ftp_user_settings függvényben add meg.

<?php
add_filter('updraftplus_get_option', 'get_stored_ftp_options', 10, 3);
add_filter('updraftplus_update_option', 'update_stored_ftp_options', 10, 3);
function get_stored_ftp_options($ret, $option, $default) {
if ('updraft_ftp' != $option || empty($ret['settings'])) return $ret;
$user_settings = get_ftp_user_settings();
foreach ($ret['settings'] as $instance => $options) {
$settings = array_shift($user_settings);
$ret['settings'][$instance]['user'] = $settings['user'];
$ret['settings'][$instance]['pass'] = $settings['pass'];
}
return $ret;
}
// Mentéskor az FTP-adatok nem kerülnek az adatbázisba.
function update_stored_ftp_options($value, $option, $use_cache) {
if ('updraft_ftp' != $option || empty($value['settings'])) return $value;
foreach ($value['settings'] as $instance => $options) {
$value['settings'][$instance]['user'] = '';
$value['settings'][$instance]['pass'] = '';
}
return $value;
}
// Ide írd a hitelesítő adataidat.
function get_ftp_user_settings() {
return array(
0 => array(
'user' => 'test_login',
'pass' => 'test_password'
),
1 => array(
'user' => 'test_login_2',
'pass' => 'test_password_2'
)
);
}

Más tárhelytípushoz a kódot hasonlóan kell átalakítani. Ha ebben nem vagy biztos, kérj meg egy fejlesztőt, pár perces munka.

Készült:

Tiszteletben tartjuk a magánszférádat

Sütiket használunk a böngészési élmény javítására és a forgalom elemzésére. Az analitika csak akkor indul, ha engeded. Adatvédelmi irányelvek, Sütitájékoztató.

Sütibeállítások