Ga naar hoofdinhoud

WP Media Folder Addon: Wasabi-integratie

1. Hoe maak je een Wasabi-gebruiker en een nieuwe API-sleutel?

Log in op de Wasabi-beheer en navigeer naar de sectie Gebruikers in het linkermenu en klik vervolgens op Gebruiker aanmaken knop.

 

create-user-wasabi

 

Stap 1: Voer uw Gebruikersnaam, selecteer "Type of Access: Programmatic (API-sleutel aanmaken)", klik vervolgens op Volgende knop.

 

username-newuser

 

Stap 2: Als u gebruikersgroepen in Wasabi wilt gebruiken, kunt u er één selecteren of maken, om het kort te houden, we’re gaan deze optionele stap overslaan en klik op de Volgende knop.

 

group-newuser

 

Stap 3: Selecteer "AmazonS3FullAccess" beleid, scrol dan omlaag en klik op Volgende knop.

 

policy-newuser

 

Stap 4: Klik op Gebruiker aanmaken knop om te voltooien. 

 

review-newuser

 

Een pop-up met de Access key en Secret key verschijnt. Je kunt de sleutels downloaden, naar het klembord kopiëren of ze ergens bewaren voor de volgende stap.

 

new-access-key-wasabi

 

Maak een nieuwe bucket

Een nieuwe bucket kan worden aangemaakt op het Wasabi-platform of via de WP Media Folder-plug-in.

De eerste manier is om te creëren op de Wasabi-site, navigeer naar Buckets sectie, en klik op Bucket aanmaken knop in de rechterbovenhoek van het dashboard. Daarna voer je de bucketnaam in en klik je op de knop Bucket aanmaken. Uiteindelijk zie je de nieuwe bucket in de lijst.

 

create-bucket-wasabi-platform

 

De tweede manier is om aan te maken in de instellingen van WP Media Folder. Navigeer naar menu Instellingen > WP Media Folder > Cloud > Offload Media > Wasabi, klik op Bucketinstellingen en selectie knop. Onderaan de pop-up, voer de bucketnaam in en klik op Aanmaken knop.

 

maak-bucket-wp

 

2. Inloggen op Wasabi vanuit WP Media Folder

Ga terug naar de WordPress Thing dashboard en klik op het menu Instellingen > WP Media Folder > Cloud > Offload Media. Vervolgens, klik op de Bewerken pictogram bij Selecteer cloudprovider en kies Wasabi.

 

selecteer-cloudprovider-wasabi

 

Plak vervolgens het volgende in de formuliervelden:

  • Toegangssleutel-ID
  • Geheime toegangssleutel

 

fill-key-wasabi

 

Sla daarna de instellingen op en de verbinding zou succesvol moeten zijn. Ga door naar de volgende stap om de Wasabi-functies te ontdekken.

 

3. Hoe werkt het? Wat kan ik doen met Wasabi?

Hoe werkt het?

Zodra je WP Media Folder met Wasabi hebt verbonden, selecteer dan een bucket of maak een nieuwe aan waar al je gegevens worden opgeslagen.

 

selecteer-bucket-wasabi

 

En je kunt inschakelen Kopiëren naar Wasabi optie, al je nieuw geüploade media worden naar Wasabi verzonden.

 

kopieer-naar-wasabi

 

En als je je geüploade media wilt synchroniseren voordat je de Wasabi-integratie gebruikt, klik dan op Synchroniseren met Wasabi knop. Vervolgens wordt je bestaande mediabibliotheek naar je Wasabi bucket verzonden.

Opmerking: Wanneer je deze actie uitvoert, wordt de URL van je media vervangen door de Wasabi-URL. Zie het voorbeeld hieronder.
Van 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

 

Om de media op uw site te offloaden, moet u de Verwijderen na upload optie, uw mediabibliotheek wordt volledig opgeslagen op Wasabi in plaats van op uw server.

 

remove-after-upload-wasabi

 

Door het inschakelen van Bijlage‑label optie, wordt de informatie over elke media weergegeven wanneer u met de muis over het Wasabi‑label rechtsboven zweeft.

 

label-wasabi

 

Wanneer je de locatie van je media wilt wijzigen of de plugin wilt verwijderen, klik op Retrieve Wasabi Media knop, dan worden al je media gekopieerd van Wasabi naar je mediabibliotheek. Alle eerdere links die aan je inhoud zijn toegevoegd blijven bestaan (geen gebroken link).

 

retrieve-media-wasabi

 

Opmerking: Je kunt alleen bestanden synchroniseren van Wasabi naar de mediabibliotheek als ze via onze plugin zijn geüpload.

Hoe verbind je CDN?

Onze plugin is geïntegreerd met CDN. CDN's waarmee Wasabi is gevalideerd om mee te werken zijn: Cloudflare, CloudFront,... ga alstublieft naar hier voor meer details.

Nadat u uw aangepaste domein heeft verkregen, navigeert u naar de Wasabi-instellingen in WP Media Folder en voert u deze in het 'Custom Domain (CNAME)' veld.

 

kopieer-distributie

 

Wacht alstublieft een paar minuten totdat de afbeelding volledig is geladen wanneer het veld Laatst gewijzigd verandert van "Deploying" naar de huidige datum en tijd.

Uiteindelijk kunt u de wijzigingen zien in Bestands-URL veld in elke afbeelding.

 

file-url-cdn-wasabi

 

Geavanceerde instellingen en acties

U kunt een bucket selecteren om mappen en bestanden van de Wasabi-server naar uw mediabibliotheek te importeren. Of kopieer alle bestanden van de ene bucket naar de andere.

 

copy-buckets-wasabi

 

Duplicate entry 'cc46bdf9d2ec3413199a4ce0a0d95031-nl' 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 'cc46bdf9d2ec3413199a4ce0a0d95031-nl' 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 'cc46bdf9d2ec3413199a4ce0a0d95031-nl' 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}()