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.
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.

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.
- Pas de instellingen in de tabel toe en kies Create bucket.
- Bewaar de volledige bucketnaam, de regio en het 12-cijferige AWS-account-ID van de eigenaar van de bucket.
- Laat Cross-origin resource sharing (CORS) leeg. Verzoeken aan S3 komen van de WordPress-server.
| AWS-veld | Instelling |
|---|---|
| Bucket type | General purpose |
| Bucket namespace | Account Regional namespace (aanbevolen) |
| Object Ownership | ACLs disabled / Bucket owner enforced |
| Block Public Access | Block all public access (alle vier de instellingen) |
| Bucket Versioning | Enable |
| Default encryption | Server-side encryption with Amazon S3 managed keys (SSE-S3 / AES256) |
| Bucket Key | Disable |
| Advanced settings → Object Lock | Disable |
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.
- Controleer de meldingen in de editor en kies Save changes.
- Controleer of de regel is opgeslagen. Houd Block all public access ingeschakeld.
{
"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.
- Valideer het beleid, kies Next en geef het een naam, bijvoorbeeld AlterProductS3Storage.
- Kies Create policy en bewaar de naam voor het instellen van de gebruiker.
{
"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.
- Kies Next → Attach policies directly en koppel alleen het bovenstaande beleid. Rond Create user af.
- Open bij deze gebruiker Security credentials → Access keys → Create access key. Kies voor deze handmatige pluginconfiguratie Other → Next en vervolgens Create access key.
- 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.
- Kies Save connection en wacht op de bevestiging.
- Kies Test connection. Sla wijzigingen op voordat je opnieuw test.
- Controleer het resultaat in het dialoogvenster en de kolom Last connection test. Lege sleutelvelden na het opslaan zijn normaal.
| Veld | Waarde |
|---|---|
| Bucket name | De volledige bucketnaam, geen ARN, s3://-URL of HTTPS-adres; zonder punten. |
| Folder prefix | alter-product, overeenkomstig het IAM-beleid. Gebruik letters, cijfers, koppeltekens, underscores en gescheiden mappen; geen slash aan het begin of einde. |
| Bucket owner AWS account ID | Het 12-cijferige account-ID van de eigenaar, zonder spaties. |
| AWS region | De daadwerkelijke regio van de bucket. Het formulier gebruikt standaard eu-central-1. |
| AWS access key ID / AWS secret access key | Het opgeslagen sleutelpaar van de afzonderlijke IAM-gebruiker. |
| Use temporary AWS credentials | Laat 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.
- Kies Start migration. De plugin test S3, bereidt elke groep voor, kopieert en verifieert deze en wijzigt daarna de verwijzingen.
- 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.
- 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.
- 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.