Integrazione

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.

Installa prima il plugin WordPress + WooCommerceCollega Alter Product al negozio prima di configurare questo storage opzionale.

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.

Il browser richiede i file tramite WordPress; WordPress si collega a un bucket AWS S3 privato.
I file vengono distribuiti da WordPress. Il bucket S3 privato non è esposto direttamente al browser.

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.

  1. Applica le impostazioni della tabella e scegli Create bucket.
  2. Conserva il nome completo del bucket, la regione e l’ID a 12 cifre dell’account AWS del proprietario.
  3. Lascia Cross-origin resource sharing (CORS) vuoto. Le richieste a S3 provengono dal server WordPress.
Impostazioni utilizzate dalla guida S3 del plugin
Campo AWSImpostazione
Bucket typeGeneral purpose
Bucket namespaceAccount Regional namespace (consigliato)
Object OwnershipACLs disabled / Bucket owner enforced
Block Public AccessBlock all public access (tutte e quattro le impostazioni)
Bucket VersioningEnable
Default encryptionServer-side encryption with Amazon S3 managed keys (SSE-S3 / AES256)
Bucket KeyDisable
Advanced settings → Object LockDisable

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.

  1. Controlla i messaggi dell’editor e scegli Save changes.
  2. Conferma che la regola sia stata salvata. Mantieni Block all public access attivo.
JSON della policy del bucket
{
  "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.

  1. Convalida la policy, scegli Next e assegnale un nome, ad esempio AlterProductS3Storage.
  2. Scegli Create policy e conserva il nome per configurare l’utente.
JSON della policy IAM
{
  "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.

  1. Scegli Next → Attach policies directly e associa soltanto la policy precedente. Completa Create user.
  2. Apri Security credentials → Access keys → Create access key dell’utente. Per questa configurazione manuale del plugin, scegli Other → Next, poi Create access key.
  3. 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.

  1. Scegli Save connection e attendi la conferma.
  2. Scegli Test connection. Salva le modifiche prima di ripetere il test.
  3. Controlla l’esito nella finestra di dialogo e nella colonna Last connection test. È normale che i campi delle chiavi risultino vuoti dopo il salvataggio.
Campi della connessione WordPress
CampoValore
Bucket nameNome completo del bucket, non un ARN, un URL s3:// o un indirizzo HTTPS; senza punti.
Folder prefixalter-product, corrispondente alla policy IAM. Usa lettere, numeri, trattini, trattini bassi e cartelle separate; nessuna barra iniziale o finale.
Bucket owner AWS account IDID a 12 cifre dell’account del proprietario, senza spazi.
AWS regionLa regione effettiva del bucket. Il modulo propone eu-central-1 per impostazione predefinita.
AWS access key ID / AWS secret access keyLa coppia di chiavi salvata dell’utente IAM dedicato.
Use temporary AWS credentialsLascia 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.

  1. Scegli Start migration. Il plugin testa S3, prepara ogni gruppo, lo copia, lo verifica e ne cambia i riferimenti.
  2. 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à.
  3. 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.
  4. 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.