Přeskočit na hlavní obsah

WP Media Folder Addon: integrace Wasabi

1. Jak vytvořit uživatele Wasabi a nový API klíč?

Přihlaste se k Wasabi Management a přejděte do sekce Uživatelé v levém menu a poté klikněte na Vytvořit uživatele tlačítko.

 

create-user-wasabi

 

Krok 1: Zadejte své Uživatelské jméno, vyberte "Typ přístupu: Programmatic (vytvořit API klíč)", pak klikněte na Další tlačítko.

 

username-newuser

 

Krok 2: Pokud chcete používat uživatelské skupiny ve Wasabi, můžete jednu vybrat nebo vytvořit, pro stručnost tento volitelný krok přeskočíme a klikneme na Další tlačítko.

 

group-newuser

 

Krok 3: Vyberte "AmazonS3FullAccess" politiku, poté posuňte dolů a klikněte na Další tlačítko.

 

policy-newuser

 

Krok 4: Klikněte na Vytvořit uživatele tlačítko pro dokončení. 

 

review-newuser

 

Vyskakovací okno obsahující přístupový klíč a tajný klíč se zobrazí. Můžete si stáhnout, zkopírovat klíče do schránky nebo je uložit někde pro další krok.

 

new-access-key-wasabi

 

Vytvořit nový bucket

Nový bucket lze vytvořit na platformě Wasabi nebo v pluginu WP Media Folder.

První způsob je vytvořit na stránce Wasabi, přejít na Buckets a kliknout na Vytvořit bucket tlačítko v pravém horním rohu dashboardu. Poté zadejte název bucketu a klikněte na tlačítko Vytvořit bucket. Nakonec uvidíte nový bucket v seznamu.

 

create-bucket-wasabi-platform

 

Druhá možnost je vytvořit v nastavení WP Media Folder. Přejděte do nabídky Nastavení > WP Media Folder > Cloud > Přenést média > Wasabi, klikněte na nastavení a výběr bucketu tlačítko. Ve spodní části vyskakovacího okna zadejte název bucketu a klikněte na Vytvořit tlačítko.

 

create-bucket-wp

 

2. Přihlášení k Wasabi z WP Media Folder

Vraťte se na WordPress Thing řídicí panel a klikněte na nabídku Nastavení > WP Media Folder > Cloud > Přenést média. Dále klikněte na Upravit ikonu u Vyberte poskytovatele cloudu a vyberte Wasabi.

 

vyberte-poskytovatele-cloudu-wasabi

 

Poté vložte následující do polí formuláře:

  • ID přístupového klíče
  • Tajný přístupový klíč

 

vyplnit-klíč-wasabi

 

Poté uložte nastavení a připojení by mělo být úspěšné. Přejděte na další krok a objevte funkce Wasabi.

 

3. Jak to funguje? Co mohu dělat s Wasabi?

Jak to funguje?

Jakmile jste' připojili WP Media Folder k Wasabi, vyberte prosím bucket nebo vytvořte nový, kde budou uložena všechna vaše data.

 

vyberte-bucket-wasabi

 

A můžete povolit Kopírovat do Wasabi volbu, veškerá nově nahraná média budou odeslána do Wasabi.

 

kopírovat-do-wasabi

 

A pokud chcete synchronizovat nahraná média před použitím integrace Wasabi, klikněte na Synchronizovat s Wasabi tlačítko. Poté odešle celou vaši existující knihovnu médií do vašeho bucketu Wasabi.

Poznámka: Když provedete tuto akci, URL vašich médií bude nahrazena URL Wasabi. Viz níže uvedený příklad.
Z https://joomunited.com/wp-content/uploads/2019/02/image.jpg to >> https://s3.eu-central-1.wasabisys.com/{bucket}/wp-media-folder-joomunited/wp-content/uploads/2019/02/image.jpg

 

Aby bylo možné odlehčit média na vašem webu, měli byste povolit Odstranit po nahrání volba, vaše knihovna médií bude zcela uložena na Wasabi místo na vašem serveru.

 

remove-after-upload-wasabi

 

Povolením Štítek přílohy volby se informace o každém médiu zobrazí, když najedete kurzorem na štítek Wasabi v pravém horním rohu.

 

label-wasabi

 

Když chcete změnit umístění médií nebo odebrat plugin, klikněte na Načíst Wasabi Média tlačítko, pak budou všechna vaše média zkopírována z Wasabi do vaší mediální knihovny. Všechny dříve přidané odkazy ve vašem obsahu zůstanou na místě (žádné poškozené odkazy).

 

retrieve-media-wasabi

 

Poznámka: Můžete synchronizovat soubory z Wasabi do mediální knihovny pouze pokud jsou nahrány prostřednictvím našeho pluginu.

Jak připojit CDN?

Náš plugin je integrován s CDN. CDN, pro které byl Wasabi ověřen, jsou: Cloudflare, CloudFront,... prosím přejděte zde pro více podrobností.

Po získání vlastní domény přejděte do nastavení Wasabi v WP Media Folder a zadejte ji do 'Custom Domain (CNAME)' pole.

 

copy-distribution

 

Počkejte prosím několik minut, než se obrázek plně načte, když se pole Poslední úpravy změní z "Nasazování" na aktuální datum a čas.

Nakonec můžete vidět změny v File URL poli u každého obrázku.

 

file-url-cdn-wasabi

 

Pokročilá nastavení a akce

Můžete vybrat bucket pro import složek a souborů ze serveru Wasabi do vaší mediální knihovny. Nebo zkopírovat všechny soubory z jednoho bucketu do druhého.

 

copy-buckets-wasabi

 

Duplicate entry 'e60381473f15a637e39772d4f26ce283-cs' for key 'bk24_linguise_urls.hash_translation' (500 Whoops, looks like something went wrong.)

mysqli_sql_exception

HTTP 500 Whoops, looks like something went wrong.

Duplicate entry 'e60381473f15a637e39772d4f26ce283-cs' for key 'bk24_linguise_urls.hash_translation'

Exception

mysqli_sql_exception

Show exception properties
mysqli_sql_exception {#896
  #sqlstate: "23000"
}
  1. foreach ($urls as $translation => $source) {
  2. $elements[] = '("'.mysqli_real_escape_string($this->_database, Request::getInstance()->getLanguage()).'", "'.mysqli_real_escape_string($this->_database, $source).'", "'.mysqli_real_escape_string($this->_database, $translation).'", "'.md5($source).'", "'.md5($translation).'")';
  3. }
  4. $query .= implode(',', $elements);
  5. $query .= ' ON DUPLICATE KEY UPDATE source=VALUES(source), translation=VALUES(translation), hash_source=VALUES(hash_source), hash_translation=VALUES(hash_translation)';
  6. $this->_database->query($query);
  7. }
  8. public function removeUrls($urls)
  9. {
  10. $query = 'DELETE FROM '.mysqli_real_escape_string($this->_database, $this->_database_table_urls).' WHERE (hash_source) IN ';
  1. foreach ($urls as $translation => $source) {
  2. $elements[] = '("'.mysqli_real_escape_string($this->_database, Request::getInstance()->getLanguage()).'", "'.mysqli_real_escape_string($this->_database, $source).'", "'.mysqli_real_escape_string($this->_database, $translation).'", "'.md5($source).'", "'.md5($translation).'")';
  3. }
  4. $query .= implode(',', $elements);
  5. $query .= ' ON DUPLICATE KEY UPDATE source=VALUES(source), translation=VALUES(translation), hash_source=VALUES(hash_source), hash_translation=VALUES(hash_translation)';
  6. $this->_database->query($query);
  7. }
  8. public function removeUrls($urls)
  9. {
  10. $query = 'DELETE FROM '.mysqli_real_escape_string($this->_database, $this->_database_table_urls).' WHERE (hash_source) IN ';
  1. public function saveUrls($urls) {
  2. if (empty($urls)) {
  3. return;
  4. }
  5. return $this->_database->saveUrls($urls);
  6. }
  7. public function removeUrls($urls) {
  8. if (empty($urls)) {
  9. return;
  1. if (isset($result->url_translations)) {
  2. Defer::getInstance()->defer(function() use ($result) {
  3. $new_urls = $result->url_translations;
  4. $new_urls = get_object_vars($new_urls);
  5. Database::getInstance()->saveUrls((array)$new_urls);
  6. });
  7. }
  8. if (isset($result->urls_untranslated)) {
  9. Defer::getInstance()->defer(function() use ($result) {
Translation->Linguise\Script\Core\{closure}()
  1. }
  2. public function finalize()
  3. {
  4. foreach ($this->_actions as $action) {
  5. call_user_func($action['function'], $action['args']);
  6. }
  7. }
  8. }
  1. Helper::prepareDataDir();
  2. // Finalize defer actions on shutdown
  3. // @codeCoverageIgnoreStart
  4. register_shutdown_function(function() {
  5. Defer::getInstance()->finalize();
  6. Database::getInstance()->close();
  7. });
  8. // @codeCoverageIgnoreEnd
  9. }
Processor->Linguise\Script\Core\{closure}()

Stack Trace

mysqli_sql_exception
mysqli_sql_exception:
Duplicate entry 'e60381473f15a637e39772d4f26ce283-cs' for key 'bk24_linguise_urls.hash_translation'

  at /var/www/staging.joomunited.com/public_html/plugins/system/linguise/vendor/linguise/script-php/src/Databases/Mysql.php:170
  at mysqli->query()
     (/var/www/staging.joomunited.com/public_html/plugins/system/linguise/vendor/linguise/script-php/src/Databases/Mysql.php:170)
  at Linguise\Script\Core\Databases\Mysql->saveUrls()
     (/var/www/staging.joomunited.com/public_html/plugins/system/linguise/vendor/linguise/script-php/src/Database.php:232)
  at Linguise\Script\Core\Database->saveUrls()
     (/var/www/staging.joomunited.com/public_html/plugins/system/linguise/vendor/linguise/script-php/src/Translation.php:119)
  at Linguise\Script\Core\Translation->Linguise\Script\Core\{closure}()
  at call_user_func()
     (/var/www/staging.joomunited.com/public_html/plugins/system/linguise/vendor/linguise/script-php/src/Defer.php:42)
  at Linguise\Script\Core\Defer->finalize()
     (/var/www/staging.joomunited.com/public_html/plugins/system/linguise/vendor/linguise/script-php/src/Processor.php:31)
  at Linguise\Script\Core\Processor->Linguise\Script\Core\{closure}()