In molti flussi di lavoro l’object storage ha preso il posto del server FTP. I siti statici si pubblicano in un bucket, i backup finiscono su Backblaze B2, le immagini escono da Cloudflare R2 perché non fa pagare il traffico in uscita. Parlano tutti la stessa lingua: l’API che Amazon ha disegnato per S3.
Il Mac però non ha un modo integrato per aprire un bucket. «Connessione al server» del Finder non sa cosa sia S3, e le console web vanno bene per un file, ma diventano un supplizio con una cartella di trecento. Questa guida spiega cosa serve per collegarsi dal Mac: endpoint e chiavi, la riga di comando, un client grafico.
Cosa serve: un endpoint e una coppia di chiavi
Ogni servizio compatibile S3 chiede le stesse tre cose:
- Endpoint — l’indirizzo del server, che di solito contiene la regione.
- Access Key ID — la metà pubblica della chiave, una specie di nome utente.
- Secret Access Key — la metà privata, mostrata una sola volta quando crei la chiave. Va custodita come una password.
Gli endpoint dei servizi più diffusi:
| Servizio | Formato dell’endpoint | Esempio |
|---|---|---|
| Amazon S3 | s3.<regione>.amazonaws.com | s3.eu-south-1.amazonaws.com |
| Backblaze B2 | s3.<regione>.backblazeb2.com | s3.eu-central-003.backblazeb2.com |
| Cloudflare R2 | <account-id>.r2.cloudflarestorage.com | 1a2b3c….r2.cloudflarestorage.com |
| Wasabi | s3.<regione>.wasabisys.com | s3.eu-south-1.wasabisys.com |
| MinIO (in casa) | il tuo host e la porta | nas.local:9000 |
Backblaze mostra l’endpoint nella scheda di ogni bucket. Cloudflare lo mostra in R2 ▸ il tuo bucket ▸ Impostazioni, e su R2 la regione è sempre auto. Su B2 «keyID» e «applicationKey» sono l’Access Key ID e la Secret Access Key con un altro nome.
Crea una chiave che arrivi solo dove serve. Tutti questi servizi permettono di limitare una chiave a un solo bucket, alcuni anche in sola lettura. Una chiave che vede solo il bucket dei backup non può svuotare per sbaglio quello di produzione, e se finisce nelle mani sbagliate il danno resta circoscritto.
Le cartelle sono un’illusione, e conta saperlo
Un bucket non ha cartelle. Contiene oggetti, ciascuno con una chiave completa come sito/assets/logo.png. Console e client disegnano le cartelle spezzando le chiavi sulla /. Funziona bene, finché non si arriva ai punti in cui l’illusione cede:
- Rinominare una cartella significa copiare e cancellare ogni oggetto con quel prefisso. Un client può farlo per te, ma su una cartella grande sono molte richieste, non un’operazione istantanea.
- Le cartelle vuote non esistono da sole: i client creano un oggetto vuoto che finisce con
/perché la cartella resti visibile. - Niente permessi in stile Unix. Non c’è
chmod: l’accesso si governa con le policy del bucket e i permessi della chiave, non con i bit dei file. - La data di modifica è la data di caricamento. Non si può dare a un oggetto la data del file originale, e questo pesa sulla sincronizzazione: si confronta per dimensione o per data di caricamento, non per «stessa data che ho sul disco».
Nulla di tutto questo è un difetto del client: l’object storage funziona così.
Opzione 1: la AWS CLI
Lo strumento a riga di comando di Amazon funziona con ogni servizio compatibile S3, non solo con AWS. Si installa con Homebrew (brew install awscli), si inseriscono le chiavi con aws configure e poi si indica l’endpoint giusto:
# Elenca i bucket
aws s3 ls --endpoint-url https://s3.eu-central-003.backblazeb2.com
# Carica un file
aws s3 cp fattura.pdf s3://mio-bucket/fatture/ --endpoint-url https://s3.eu-central-003.backblazeb2.com
# Rispecchia una cartella locale nel bucket (cancella di là ciò che non c'è più in locale)
aws s3 sync ./public s3://mio-sito --delete --endpoint-url https://<account-id>.r2.cloudflarestorage.com
Per Amazon S3 l’opzione --endpoint-url si può omettere. Per script e pipeline è lo strumento giusto. L’opzione --delete di sync è pericolosa esattamente quanto sembra: prima provala con --dryrun.
L’altro classico è rclone (brew install rclone). Parla S3 e altri quaranta servizi e può montare un bucket come disco con rclone mount. Su macOS però il mount richiede macFUSE o un ripiego via NFS, e un bucket montato si comporta male con le app che salvano spesso o che si aspettano un accesso casuale veloce.
Opzione 2: un client grafico
Per il lavoro di tutti i giorni (trascinare dentro una cartella, controllare cosa c’è, cancellare una build vecchia) un client a due pannelli è più rapido che scrivere percorsi. In Upstream S3 è un protocollo come FTP o SFTP: il bucket si apre negli stessi due pannelli dei tuoi server, con la stessa coda di trasferimento.
Passo per passo
- Crea una chiave limitata — nella console del servizio crea una chiave d’accesso limitata al bucket che ti serve, e copia la Secret Access Key prima di chiudere la finestra.
- Aggiungi un sito con il protocollo S3 — in Upstream premi ⌘N e scegli S3. Nel campo Endpoint metti l’endpoint (per esempio
s3.eu-south-1.amazonaws.com), come utente l’Access Key ID e come password la Secret Access Key, che finisce nel Portachiavi di macOS. - Se la chiave vede un solo bucket, entra direttamente lì — una chiave limitata a un bucket spesso non può elencarli tutti. Imposta il bucket come cartella remota (per esempio
/mio-bucket) e il sito si aprirà già al suo interno. - Collegati — la radice mostra i bucket, ogni bucket si apre come una cartella, e da lì trascini i file dentro e fuori dal Finder come con qualunque server. La regione viene letta dall’endpoint; se un bucket sta in un’altra regione, l’app la ricava dalla risposta del server e rifirma la richiesta.
- Usa gli stessi strumenti dei server — la coda di trasferimento, la sincronizzazione con l’anteprima e il caricamento automatico al salvataggio funzionano anche sui bucket.
I file grandi salgono in parti da 8 MB: se la connessione cade si perde una parte, non l’intero caricamento, e i download interrotti riprendono da dove si erano fermati. L’accesso a S3 fa parte di Upstream FULL, che puoi provare gratis per 7 giorni.
Domande frequenti
Il Finder del Mac può collegarsi ad Amazon S3?
No. «Connessione al server» del Finder supporta SMB, NFS, AFP e FTP in sola lettura, non S3. Per sfogliare un bucket servono la console web, uno strumento a riga di comando come la AWS CLI o rclone, oppure un client che parli S3.
Backblaze B2 è compatibile con gli strumenti S3?
Sì. B2 ha un’API compatibile S3: usa l’endpoint indicato nella scheda del bucket (s3.<regione>.backblazeb2.com), il keyID come Access Key ID e l’applicationKey come Secret Access Key. La master application key dell’account non funziona con l’API S3: crea una application key separata.
Che regione si usa per Cloudflare R2?
auto. R2 non ha regioni nel senso di AWS: agli strumenti che ne chiedono una va data auto, con l’endpoint <account-id>.r2.cloudflarestorage.com.
Perché non posso cambiare i permessi dei file su S3?
Perché gli oggetti non hanno permessi Unix. Chi può leggere o scrivere lo decidono la policy del bucket, i permessi della chiave e, su AWS, le ACL o le impostazioni di accesso pubblico. Un client che ti dice che chmod non è supportato ha ragione.
Perché la sincronizzazione crede che tutti i file del bucket siano cambiati?
Perché la data dell’oggetto è quella del caricamento, non quella del file originale, e gli strumenti che confrontano le date vedono tutto come più nuovo o più vecchio. Confronta per dimensione, oppure lascia che lo strumento ricordi cosa ha caricato — vedi come la sincronizzazione decide cosa è cambiato.
S3 può sostituire SFTP?
Per conservare e distribuire file, spesso sì: costa meno, è più affidabile e cresce senza un server da gestire. Non lo sostituisce quando ti serve un vero file system su un server: eseguire PHP, modificare file di configurazione sul posto, impostare permessi. Lì serve ancora SFTP.