Il tuo storage · WordPress + WooCommerce
WooCommerce AWS S3
Il plugin Alter Product include un modulo di storage AWS S3 pronto all’uso. Conserva i gruppi di file supportati dal plugin nel tuo bucket privato, collegalo in WordPress e migra i file esistenti con gli strumenti del plugin.
Alter Product non addebita un costo aggiuntivo di capacità per ampliare questo storage collegato. AWS fattura al tuo account storage, richieste e trasferimento. Restano applicabili il tuo hosting WordPress e le normali regole del piano e delle sessioni embed.
Le istruzioni seguono la guida di configurazione del plugin. Le etichette della console AWS restano in inglese.
Storage, distribuzione e costi
S3 conserva gli oggetti file del plugin. WordPress rimane responsabile della distribuzione autorizzata al browser.
Uno storage privato per il plugin
Il browser non scarica direttamente da S3. WordPress recupera e verifica i file dal bucket privato, poi li serve tramite i propri endpoint. Lascia S3 CORS vuoto e Block Public Access attivo; non è un bucket pubblico né un collegamento diretto a una CDN.
Il modulo copre i gruppi di file Alter Product supportati. Collegare un bucket non sposta tutti i file di WordPress né modifica i limiti degli strumenti incorporati.

Pagare AWS per le risorse utilizzate
Alter Product non applica costi aggiuntivi per aumentare la capacità del bucket collegato. I costi AWS dipendono dall’utilizzo, dalla regione e dalla classe di storage; consulta il listino S3 aggiornato anziché presumere una tariffa fissa.
Poiché WordPress serve i file, il traffico può essere conteggiato anche nella banda del tuo hosting. S3 non garantisce l’assenza di traffico sull’hosting né una capacità di trasferimento illimitata del server.
Creare un bucket con le impostazioni supportate
I nomi dei campi seguenti corrispondono alla console AWS in inglese e alla guida di configurazione integrata nel plugin.
Creare un bucket per uso generale
Accedi ad AWS, apri Amazon S3 e seleziona General purpose buckets → Create bucket. Scegli una regione e un nome con lettere minuscole, numeri e trattini, senza punti. Copia il nome completo del bucket, incluso qualsiasi suffisso aggiunto da AWS.
- Applica le impostazioni della tabella e scegli Create bucket.
- Conserva il nome completo del bucket, la regione e l’ID a 12 cifre dell’account AWS del proprietario.
- Lascia Cross-origin resource sharing (CORS) vuoto. Le richieste a S3 provengono dal server WordPress.
| Campo AWS | Impostazione |
|---|---|
| Bucket type | General purpose |
| Bucket namespace | Account Regional namespace (consigliato) |
| Object Ownership | ACLs disabled / Bucket owner enforced |
| Block Public Access | Block all public access (tutte e quattro le impostazioni) |
| Bucket Versioning | Enable |
| Default encryption | Server-side encryption with Amazon S3 managed keys (SSE-S3 / AES256) |
| Bucket Key | Disable |
| Advanced settings → Object Lock | Disable |
Richiedere HTTPS
Aggiungi una regola di trasporto senza rendere pubblico il bucket né concedere l’accesso agli oggetti.
Aggiungere la policy del bucket
Apri Permissions → Bucket policy → Edit. Sostituisci entrambi i valori EXAMPLE-BUCKET con il nome completo del bucket. Se esiste già una policy, conservane le istruzioni e aggiungi questa regola dopo aver verificato l’intero documento.
- Controlla i messaggi dell’editor e scegli Save changes.
- Conferma che la regola sia stata salvata. Mantieni Block all public access attivo.
{
"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"
}
}
}
]
}Creare un accesso IAM limitato
Usa una policy dedicata a questo bucket e prefisso, invece di AdministratorAccess o AmazonS3FullAccess.
Creare la policy del plugin
In IAM → Policies → Create policy → JSON, incolla il documento seguente. Sostituisci ogni EXAMPLE-BUCKET con il nome completo del bucket. Il prefisso alter-product deve corrispondere a Folder prefix in WordPress; modificalo in ogni Resource degli oggetti se scegli un prefisso diverso.
- Convalida la policy, scegli Next e assegnale un nome, ad esempio AlterProductS3Storage.
- Scegli Create policy e conserva il nome per configurare l’utente.
{
"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/*"
}
]
}Creare un utente dedicato e una chiave di accesso
Scegli IAM → Users → Create user. Lascia Provide user access to the AWS Management Console deselezionato.
- Scegli Next → Attach policies directly e associa soltanto la policy precedente. Completa Create user.
- Apri Security credentials → Access keys → Create access key dell’utente. Per questa configurazione manuale del plugin, scegli Other → Next, poi Create access key.
- Salva Access key ID e Secret access key in un gestore di password. Il segreto viene mostrato una sola volta. Inseriscili direttamente in WordPress tramite HTTPS, non in messaggi o screenshot.
Salvare e testare la connessione WordPress
Apri Alter Product → Settings → Storage nella dashboard HTTPS del negozio. Scegli AWS S3 e + / Add connection.
Inserire i dettagli della connessione
Seleziona New connection. Le stesse istruzioni integrate sono disponibili in AWS S3 setup guide.
- Scegli Save connection e attendi la conferma.
- Scegli Test connection. Salva le modifiche prima di ripetere il test.
- Controlla l’esito nella finestra di dialogo e nella colonna Last connection test. È normale che i campi delle chiavi risultino vuoti dopo il salvataggio.
| Campo | Valore |
|---|---|
| Bucket name | Nome completo del bucket, non un ARN, un URL s3:// o un indirizzo HTTPS; senza punti. |
| Folder prefix | alter-product, corrispondente alla policy IAM. Usa lettere, numeri, trattini, trattini bassi e cartelle separate; nessuna barra iniziale o finale. |
| Bucket owner AWS account ID | ID a 12 cifre dell’account del proprietario, senza spazi. |
| AWS region | La regione effettiva del bucket. Il modulo propone eu-central-1 per impostazione predefinita. |
| AWS access key ID / AWS secret access key | La coppia di chiavi salvata dell’utente IAM dedicato. |
| Use temporary AWS credentials | Lascia deselezionato per la chiave di lunga durata di questo utente IAM. Attiva solo per credenziali temporanee e fornisci l’AWS session token. |
Se il test di connessione fallisce
Verifica nome, proprietario e regione del bucket, impostazioni richieste e prefisso esatto in WordPress e IAM. Mantieni CORS vuoto; non disattivare la protezione dall’accesso pubblico.
Bucket, prefisso, proprietario e regione salvati identificano la connessione. Per una destinazione diversa, seleziona New connection. Edit → Reconnect sostituisce le credenziali mantenendo gli stessi riferimenti ai file salvati.
Invia all’assistenza l’esito del test, senza chiavi di accesso. Prima di scegliere questo S3 come predefinito, il test di connessione deve riuscire.
Scegliere il predefinito e migrare i file esistenti
La scelta della destinazione predefinita e la migrazione sono operazioni separate.
Usare S3 per i nuovi gruppi
Scegli Make default nella riga della connessione salvata. Il plugin testa la connessione e cambia la destinazione predefinita solo in caso di successo. Questo vale per i nuovi gruppi di file; quelli esistenti e le revisioni successive conservano la destinazione registrata fino alla migrazione.
Spostare i gruppi esistenti supportati
Esegui un backup congiunto di database, salts WordPress e file prima della prima migrazione. Inizia con un ambiente di test o un piccolo gruppo. Apri Migrate sulla riga S3 di destinazione; aprire il pannello non copia i file.
Auto migration comprende i gruppi supportati al di fuori della destinazione scelta. Non garantisce la migrazione di file WordPress estranei al plugin.
- Scegli Start migration. Il plugin testa S3, prepara ogni gruppo, lo copia, lo verifica e ne cambia i riferimenti.
- Tieni aperta la pagina. Pause si arresta dopo il gruppo corrente; Resume migration riprende l’avanzamento salvato. Dopo aver chiuso la pagina, riaprila per riprendere l’invio delle attività.
- Se un gruppo fallisce, esamina il messaggio e Advanced, correggi la causa e riprendi. Non ripetere alla cieca un’operazione il cui esito di caricamento è sconosciuto.
- Dopo Migration completed, verifica lettura ordinaria delle risorse, modifica, anteprime e accesso ai file degli ordini. I gruppi creati durante la scansione potrebbero richiedere un altro passaggio.
Rimuovere una riga non elimina i file memorizzati
Cambia prima la destinazione predefinita, se necessario. Remove ritira la connessione dall’elenco, mentre file esistenti e relative credenziali salvate rimangono disponibili. Non è un comando di pulizia degli oggetti AWS.
Condividere lo storage tra nodi WordPress
Una destinazione S3 condivisa può ridurre la dipendenza dal disco di un singolo nodo. Un bilanciatore di carico richiede comunque un’installazione WordPress correttamente condivisa.
Requisiti per più nodi
Per un’installazione WordPress dietro un bilanciatore di carico, predisponi tutti questi elementi insieme:
- Un punto di scrittura SQL coerente e uno stato condiviso del database del plugin.
- Una directory uploads condivisa per i file ancora locali e le origini di migrazione conservate.
- Gli stessi salts WordPress originali su ogni nodo, per mantenere leggibili le credenziali salvate e i file cifrati.
- Una directory temporanea privata per ogni nodo, dedicata ai trasferimenti.
- Una configurazione coerente del plugin e accesso allo stesso bucket S3 privato e alle stesse versioni degli oggetti.
- Usa wpdb standard con mysqli nativo e tabelle InnoDB. I drop-in di instradamento del database, come HyperDB, non sono supportati; il bilanciamento del carico avviene qui a livello HTTP.
Mantenere funzionanti il ripristino e la rotazione delle chiavi
Conserva insieme il database, i salts e le versioni dei file referenziate.
Eseguire backup, riconnettere e verificare
Usa Edit → Reconnect per sostituire le credenziali della stessa connessione salvata. Verifica la lettura dei file attuali e storici prima di ritirare la vecchia chiave, comprese le altre connessioni salvate che potrebbero ancora usarla.
Mantieni attivo il versionamento S3 e conserva le versioni referenziate dal plugin. Non applicare una pulizia del ciclo di vita che elimini versioni storiche necessarie. Verifica il ripristino congiunto di database, salts e file memorizzati.
Le credenziali temporanee scadono e richiedono un nuovo token valido e nuove chiavi; il plugin non le rinnova automaticamente. Monitora l’utilizzo AWS e il trasferimento dell’hosting durante la crescita del negozio.