Integratie

Je eigen opslag · WordPress + WooCommerce

WooCommerce AWS S3

De Alter Product-plugin bevat een kant-en-klare AWS S3-opslagmodule. Bewaar ondersteunde bestandsgroepen van de plugin in je eigen privébucket, verbind deze in WordPress en migreer bestaande bestanden met de hulpmiddelen van de plugin.

Alter Product brengt geen extra opslagcapaciteitskosten in rekening voor het uitbreiden van deze verbonden opslag. AWS factureert opslag, verzoeken en gegevensoverdracht aan je account. Je WordPress-hosting en de gebruikelijke regels voor je abonnement en embedsessies blijven van toepassing.

De instructies volgen de installatiehandleiding in de plugin. Labels uit de AWS-console blijven in het Engels.

Installeer eerst de WordPress- en WooCommerce-pluginVerbind Alter Product met de winkel voordat je deze optionele opslagbackend configureert.

Opslag, levering en kosten

S3 bewaart de bestandsobjecten van de plugin. WordPress blijft verantwoordelijk voor de geautoriseerde levering aan de browser.

Een privébackend voor de plugin

De browser downloadt niet rechtstreeks uit S3. WordPress haalt bestanden op uit de privébucket, verifieert ze en levert ze vervolgens via zijn eigen endpoints. Laat S3 CORS leeg en houd Block Public Access ingeschakeld; dit is geen openbare bucket of rechtstreekse CDN-verbinding.

De module ondersteunt de betreffende Alter Product-bestandsgroepen. Het verbinden van een bucket verplaatst niet elk bestand in WordPress en verandert de limieten voor ingesloten tools niet.

De browser vraagt bestanden op via WordPress; WordPress maakt verbinding met een privébucket in AWS S3.
Bestanden worden via WordPress geleverd. De privébucket in S3 is niet rechtstreeks toegankelijk voor de browser.

Betaal AWS voor de resources die je gebruikt

Alter Product rekent niets extra voor het vergroten van de opslagcapaciteit in je verbonden bucket. AWS-kosten hangen af van gebruik, regio en opslagklasse; raadpleeg de actuele S3-prijslijst in plaats van uit te gaan van een vast tarief.

Omdat WordPress de bestanden levert, kan dit verkeer ook meetellen voor de bandbreedte van je hosting. S3 betekent niet dat je geen hostingverkeer betaalt of dat de doorvoercapaciteit van je server onbeperkt is.

Maak een bucket met de ondersteunde instellingen

De onderstaande veldnamen komen overeen met de Engelse AWS-console en de installatiehandleiding in de plugin.

Maak een bucket voor algemeen gebruik

Meld je aan bij AWS, open Amazon S3 en selecteer General purpose buckets → Create bucket. Kies een regio en een naam met kleine letters, cijfers en koppeltekens, zonder punten. Kopieer de volledige bucketnaam, inclusief een eventueel door AWS toegevoegd achtervoegsel.

  1. Pas de instellingen in de tabel toe en kies Create bucket.
  2. Bewaar de volledige bucketnaam, de regio en het 12-cijferige AWS-account-ID van de eigenaar van de bucket.
  3. Laat Cross-origin resource sharing (CORS) leeg. Verzoeken aan S3 komen van de WordPress-server.
Instellingen uit de S3-installatiehandleiding van de plugin
AWS-veldInstelling
Bucket typeGeneral purpose
Bucket namespaceAccount Regional namespace (aanbevolen)
Object OwnershipACLs disabled / Bucket owner enforced
Block Public AccessBlock all public access (alle vier de instellingen)
Bucket VersioningEnable
Default encryptionServer-side encryption with Amazon S3 managed keys (SSE-S3 / AES256)
Bucket KeyDisable
Advanced settings → Object LockDisable

HTTPS verplicht stellen

Voeg een transportregel toe zonder de bucket openbaar te maken of toegang tot objecten te verlenen.

Voeg het bucketbeleid toe

Open Permissions → Bucket policy → Edit. Vervang beide waarden EXAMPLE-BUCKET door je volledige bucketnaam. Als er al een beleid bestaat, behoud dan de bestaande bepalingen en voeg deze regel toe nadat je het volledige document hebt gecontroleerd.

  1. Controleer de meldingen in de editor en kies Save changes.
  2. Controleer of de regel is opgeslagen. Houd Block all public access ingeschakeld.
Bucketbeleid in JSON
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyInsecureTransport",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:*",
      "Resource": [
        "arn:aws:s3:::EXAMPLE-BUCKET",
        "arn:aws:s3:::EXAMPLE-BUCKET/*"
      ],
      "Condition": {
        "Bool": {
          "aws:SecureTransport": "false",
          "aws:PrincipalIsAWSService": "false"
        }
      }
    }
  ]
}

Beperkte IAM-toegang instellen

Gebruik een afzonderlijk beleid voor deze bucket en prefix in plaats van AdministratorAccess of AmazonS3FullAccess.

Maak het beleid voor de plugin

Plak het volgende document in IAM → Policies → Create policy → JSON. Vervang elke EXAMPLE-BUCKET door de volledige bucketnaam. De prefix alter-product moet overeenkomen met Folder prefix in WordPress; wijzig deze in elke Resource voor objecten als je een andere prefix kiest.

  1. Valideer het beleid, kies Next en geef het een naam, bijvoorbeeld AlterProductS3Storage.
  2. Kies Create policy en bewaar de naam voor het instellen van de gebruiker.
IAM-beleid in JSON
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "ReadRequiredBucketControls",
      "Effect": "Allow",
      "Action": [
        "s3:GetBucketVersioning",
        "s3:GetBucketOwnershipControls",
        "s3:GetBucketPublicAccessBlock",
        "s3:GetEncryptionConfiguration"
      ],
      "Resource": "arn:aws:s3:::EXAMPLE-BUCKET"
    },
    {
      "Sid": "WriteAndReadVersionedPluginObjects",
      "Effect": "Allow",
      "Action": [
        "s3:PutObject",
        "s3:GetObjectVersion"
      ],
      "Resource": [
        "arn:aws:s3:::EXAMPLE-BUCKET/alter-product/objects/*",
        "arn:aws:s3:::EXAMPLE-BUCKET/alter-product/.storage-tests/*"
      ]
    },
    {
      "Sid": "RecoverJournalOwnedObjects",
      "Effect": "Allow",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::EXAMPLE-BUCKET/alter-product/objects/*"
    },
    {
      "Sid": "DeleteOnlyConnectionTestVersions",
      "Effect": "Allow",
      "Action": "s3:DeleteObjectVersion",
      "Resource": "arn:aws:s3:::EXAMPLE-BUCKET/alter-product/.storage-tests/*"
    }
  ]
}

Maak een afzonderlijke gebruiker en toegangssleutel

Kies IAM → Users → Create user. Laat Provide user access to the AWS Management Console uitgevinkt.

  1. Kies Next → Attach policies directly en koppel alleen het bovenstaande beleid. Rond Create user af.
  2. Open bij deze gebruiker Security credentials → Access keys → Create access key. Kies voor deze handmatige pluginconfiguratie Other → Next en vervolgens Create access key.
  3. Bewaar de Access key ID en Secret access key in een wachtwoordmanager. De geheime sleutel wordt slechts eenmaal getoond. Voer ze rechtstreeks in WordPress in via HTTPS, niet in berichten of screenshots.

De WordPress-verbinding opslaan en testen

Open Alter Product → Settings → Storage in het HTTPS-dashboard van de winkel. Kies AWS S3 en + / Add connection.

Vul de verbindingsgegevens in

Selecteer New connection. Dezelfde ingebouwde instructies zijn beschikbaar onder AWS S3 setup guide.

  1. Kies Save connection en wacht op de bevestiging.
  2. Kies Test connection. Sla wijzigingen op voordat je opnieuw test.
  3. Controleer het resultaat in het dialoogvenster en de kolom Last connection test. Lege sleutelvelden na het opslaan zijn normaal.
Verbindingsvelden in WordPress
VeldWaarde
Bucket nameDe volledige bucketnaam, geen ARN, s3://-URL of HTTPS-adres; zonder punten.
Folder prefixalter-product, overeenkomstig het IAM-beleid. Gebruik letters, cijfers, koppeltekens, underscores en gescheiden mappen; geen slash aan het begin of einde.
Bucket owner AWS account IDHet 12-cijferige account-ID van de eigenaar, zonder spaties.
AWS regionDe daadwerkelijke regio van de bucket. Het formulier gebruikt standaard eu-central-1.
AWS access key ID / AWS secret access keyHet opgeslagen sleutelpaar van de afzonderlijke IAM-gebruiker.
Use temporary AWS credentialsLaat dit uitgevinkt voor de langdurige sleutel van deze IAM-gebruiker. Schakel het alleen in voor tijdelijke inloggegevens en vul de AWS session token in.

Als de verbindingstest mislukt

Controleer de bucketnaam, eigenaar, regio, vereiste bucketinstellingen en de exacte prefix in zowel WordPress als IAM. Laat CORS leeg; schakel de bescherming tegen openbare toegang niet uit.

De opgeslagen bucket, prefix, eigenaar en regio identificeren de verbinding. Selecteer New connection voor een andere bestemming. Edit → Reconnect is bedoeld om inloggegevens te vervangen terwijl dezelfde opgeslagen bestandsverwijzingen behouden blijven.

Geef support het testresultaat, zonder toegangssleutels. Een geslaagde verbindingstest is vereist voordat je deze S3 als standaard kunt kiezen.

De standaard kiezen en bestaande bestanden migreren

De standaardbestemming instellen en migreren zijn afzonderlijke handelingen.

S3 gebruiken voor nieuwe groepen

Kies Make default in de rij van de opgeslagen verbinding. De plugin test de verbinding en wijzigt de standaard alleen na een geslaagde test. Dit geldt voor nieuwe bestandsgroepen; bestaande groepen en latere revisies behouden hun geregistreerde bestemming totdat ze worden gemigreerd.

Ondersteunde bestaande groepen verplaatsen

Maak vóór de eerste migratie samen een back-up van de database, WordPress-salts en bestanden. Begin met een testomgeving of een kleine groep. Open Migrate in de rij van de doelverbinding met S3; alleen het openen van het paneel kopieert geen bestanden.

Automatische migratie omvat ondersteunde groepen buiten de gekozen bestemming. Het is geen garantie dat andere WordPress-bestanden worden gemigreerd.

  1. Kies Start migration. De plugin test S3, bereidt elke groep voor, kopieert en verifieert deze en wijzigt daarna de verwijzingen.
  2. Houd de pagina open. Pause stopt na de huidige groep; Resume migration gaat verder vanaf de opgeslagen voortgang. Als je de pagina sluit, open deze dan opnieuw om de verwerking voort te zetten.
  3. Als een groep mislukt, bekijk dan de melding en Advanced, verhelp de oorzaak en ga verder. Herhaal niet blindelings een bewerking waarvan het uploadresultaat onbekend is.
  4. Test na Migration completed het normaal lezen en bewerken van bestanden, voorvertoningen en toegang tot bestelbestanden. Nieuwe groepen die tijdens de scan zijn gemaakt, kunnen een volgende ronde vereisen.

Een rij verwijderen verwijdert geen opgeslagen bestanden

Wijzig zo nodig eerst de standaard. Remove haalt de verbinding uit de lijst, terwijl bestaande bestanden en hun opgeslagen inloggegevens beschikbaar blijven. Het is geen opdracht om AWS-objecten op te ruimen.

Opslag delen tussen WordPress-nodes

Een gedeelde S3-bestemming kan de afhankelijkheid van de lokale bestandsschijf van één node verminderen. Een loadbalancer heeft nog steeds een correct gedeelde WordPress-installatie nodig.

Vereisten voor meerdere nodes

Zorg bij één WordPress-installatie achter een loadbalancer voor al het volgende:

  • Eén consistente SQL-writer en een gedeelde databasestatus voor de plugin.
  • Een gedeelde uploads-map voor bestanden die nog lokaal staan en bewaarde migratiebronnen.
  • Dezelfde oorspronkelijke WordPress-salts op elke node, zodat opgeslagen inloggegevens en versleutelde bestanden leesbaar blijven.
  • Een privétijdelijke map per node voor overdrachtswerk.
  • Een consistente pluginconfiguratie en toegang tot dezelfde privébucket in S3 en objectversies.
  • Gebruik standaard wpdb met native mysqli en InnoDB-tabellen. Drop-ins voor databaseroutering zoals HyperDB worden niet ondersteund; de loadbalancing gebeurt hier op HTTP-niveau.

Herstel en sleutelrotatie blijven waarborgen

Bewaar de database, salts en de bestandsversies waarnaar wordt verwezen samen.

Back-ups maken, opnieuw verbinden en controleren

Gebruik Edit → Reconnect om inloggegevens voor dezelfde opgeslagen verbinding te vervangen. Test het lezen van huidige en historische bestanden voordat je de oude sleutel buiten gebruik stelt, ook voor andere opgeslagen verbindingen die deze mogelijk nog gebruiken.

Houd S3-versiebeheer ingeschakeld en bewaar de versies waarnaar de plugin verwijst. Pas geen lifecycle-opruiming toe die vereiste historische versies verwijdert. Test het gezamenlijk terugzetten van de database, salts en opgeslagen bestanden.

Tijdelijke inloggegevens verlopen en vereisen een nieuw geldig token en nieuwe geldige sleutels; de plugin vernieuwt ze niet automatisch. Houd AWS-gebruik en hostingverkeer in de gaten naarmate de winkel groeit.