Vai al contenuto
CivoCloudManager

Naviga Civo Object Storage via S3 su macOS.

L'endpoint della regione, la configurazione che funziona per s3cmd, rclone e AWS CLI, e cosa fa di diverso un client nativo.

Civo Object Storage parla S3, quindi quasi ogni client S3 riesce a dialogarci appena due cose sono giuste: l'endpoint della regione in cui vive lo store e una credenziale creata nella stessa regione. La documentazione Civo accompagna s3cmd e lascia a te il resto degli strumenti. Qui trovi la configurazione cruda per s3cmd, rclone e AWS CLI, e poi la strada che prende CivoCloudManager, che legge endpoint e access key direttamente dalla Civo API, così non resta niente da configurare a mano.

Configurare un client S3 per Civo

  1. 01

    Trova l'endpoint della tua regione.

    Civo costruisce gli endpoint degli Object Store come https://objectstore.<region>.civo.com con il codice regione in minuscolo, quindi uno store a Londra si raggiunge su https://objectstore.lon1.civo.com e uno a Francoforte su https://objectstore.fra1.civo.com. Ogni store mostra anche il proprio endpoint nella dashboard Civo e lo restituisce nel campo objectstore_endpoint della REST API. Secondo la panoramica delle funzioni per regione di Civo, gli Object Store ci sono in LON1, FRA1, NYC1 e MUM1, e non in PHX1.

  2. 02

    Crea una credenziale nella stessa regione.

    Ogni Object Store Civo è privato e vuole un access key ID e una secret key. Crea la credenziale nella dashboard Civo sotto Object Stores mentre il selettore di regione è sulla regione dello store, oppure con la Civo CLI. Il comando civo objectstore credential export -a <access_key> stampa la coppia come AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION e AWS_HOST, pronta da incollare in una shell.

  3. 03

    s3cmd: host_base e host_bucket.

    In ~/.s3cfg, sotto [default], imposta host_base = objectstore.fra1.civo.com, host_bucket = objectstore.fra1.civo.com, bucket_location = fra1, use_https = True, signature_v2 = False, più access_key e secret_key. Dando a host_bucket lo stesso hostname di host_base tieni s3cmd sull'indirizzamento path style, che è quello a cui Civo risponde. Poi s3cmd ls elenca i tuoi store, s3cmd ls s3://STORENAME ne elenca uno, s3cmd put file.tar s3://STORENAME/backups/ carica, e s3cmd get -r s3://STORENAME/backups/ tira giù un prefisso intero. Senza file di configurazione gli stessi due valori vanno sulla riga di comando come --host= e --host-bucket=.

  4. 04

    rclone: un remote di tipo s3, provider Other.

    Lancia rclone config e scegli s3, oppure scrivi il blocco direttamente in ~/.config/rclone/rclone.conf: sotto [civo] metti type = s3, provider = Other, env_auth = false, access_key_id e secret_access_key dalla credenziale, region = fra1, endpoint = https://objectstore.fra1.civo.com e acl = private. Dopo di che rclone lsd civo: elenca gli store, rclone ls civo:STORENAME elenca gli oggetti, rclone copy ./dir civo:STORENAME/dir -P sincronizza una cartella verso l'alto con l'avanzamento a schermo, e rclone ncdu civo:STORENAME dà un browser testuale. Le stesse impostazioni funzionano come flag una tantum: --s3-provider Other --s3-endpoint https://objectstore.fra1.civo.com --s3-region fra1.

  5. 05

    AWS CLI: --endpoint-url su ogni chiamata.

    La AWS CLI non ha bisogno di nessun plugin per Civo, solo dell'endpoint su ogni comando: aws s3 ls --endpoint-url https://objectstore.fra1.civo.com, poi aws s3 ls s3://STORENAME --endpoint-url ... e aws s3 cp file.tar s3://STORENAME/ --endpoint-url ... . Le credenziali arrivano da AWS_ACCESS_KEY_ID e AWS_SECRET_ACCESS_KEY o da un profilo con un nome, con AWS_DEFAULT_REGION impostata sul codice regione Civo perché lo scope della Signature V4 combaci. Una nota per le versioni recenti: dalla AWS CLI 2.23 in poi ogni upload porta di default un checksum CRC64NVME, che non tutti gli endpoint compatibili S3 accettano, quindi se una put fallisce con un errore di checksum imposta AWS_REQUEST_CHECKSUM_CALCULATION=when_required e AWS_RESPONSE_CHECKSUM_VALIDATION=when_required.

La trappola che costa un'ora: le key sono legate a una regione

La documentazione Civo lo dice in due frasi facili da saltare: gli Object Store sono specifici per regione, e le credenziali per gestirli e per accedervi sono legate alla regione in cui sono state create. Una key fatta mentre la dashboard stava su FRA1 non si autentica sull'endpoint LON1, anche se l'account e la fatturazione sono gli stessi. Il sintomo è un errore di autenticazione o di firma che sembra un refuso nella secret, quindi la reazione naturale è rigenerare la key, e ne esce un'altra key nella stessa regione sbagliata. Guarda prima il selettore di regione, crea la credenziale accanto allo store e solo dopo sospetta della configurazione.

Quello che la riga di comando non copre

Per script, backup e CI, s3cmd, rclone e la AWS CLI sono la risposta giusta e niente qui li sostituisce. Quello che non ti danno è uno sguardo dentro uno store: un albero di cartelle, le dimensioni a colpo d'occhio, una selezione da trascinare fuori. Client S3 generici per Mac come Cyberduck o Transmit riempiono quel buco, ma di Civo non sanno niente, quindi inserisci l'endpoint, incolli le due key per ogni store e le tieni allineate a mano ogni volta che una credenziale ruota.

La strada dell'app: nessun endpoint da inserire

CivoCloudManager si autentica una volta con la tua API key Civo e legge la lista degli Object Store dalla Civo REST API v2, che porta già con sé endpoint e credenziale collegata per ogni store. Il client S3 viene costruito da lì, quindi non c'è nessun campo endpoint, nessuna key da incollare e nessun file di configurazione. Il livello S3 è Swift puro: AWS Signature V4 calcolata con HMAC-SHA256 di CryptoKit, senza SDK AWS e senza Electron. Fa ListObjects v2 con i continuation token, navigazione a breadcrumb sui prefissi comuni, selezione multipla e download ricorsivo di cartelle con una riga di avanzamento. Detto com'è: il browser legge e scarica. Caricamenti e cancellazioni restano a s3cmd o rclone. L'app richiede macOS 15 o successivo.

Access key dietro Touch ID invece che in un dotfile

Questa è la parte che vale l'installazione anche se tieni la CLI. Un s3cmd che funziona significa la secret key in chiaro dentro ~/.s3cfg, e lo stesso vale per rclone.conf e ~/.aws/credentials. Qualsiasi processo che gira come il tuo utente può leggere tutti e tre, e così pure qualsiasi cosa passeggi nella tua home. CivoCloudManager tiene la API key Civo nel Keychain di macOS, e per svelare nell'interfaccia la secret access key di un Object Store serve prima Touch ID o la password di sistema. Il limite è evidente e va detto: nel momento in cui copi una key dentro un terminale, torna a essere un file in chiaro.

Pause e Resume per gli store che non stai usando

Uno store fermo continua a costare per la dimensione allocata. Pause copia ogni oggetto dentro un Object Store centrale chiamato civo-cloud-manager, ingrandendo prima quel vault se i dati non ci stanno, confronta chiavi e dimensioni copiate con quelle di origine e cancella lo store originale solo se combaciano. La voce sparisce dalla fattura Civo. Resume ricrea lo store con lo stesso nome e la stessa credenziale, ricopia gli oggetti, verifica di nuovo chiavi e dimensioni e poi svuota il vault. Si spostano fino a quattro oggetti alla volta. I limiti onesti: la verifica confronta nomi e dimensioni invece di calcolare un hash del contenuto, i trasferimenti tengono l'oggetto intero in memoria, e il manifest remoto viene scritto dopo la cancellazione dell'origine, con un manifest locale come riserva.

Quale client per quale lavoro

Tutti e quattro parlano con la stessa API S3 sullo stesso endpoint. La differenza è dove sta la configurazione, dove finisce la secret e cosa riesci a vedere.

Attività s3cmdrcloneAWS CLICivoCloudManager
Configurazione dell'endpoint host_base e host_bucket in ~/.s3cfgendpoint nel remote--endpoint-url su ogni chiamataletto dalla Civo API
Dove finisce la secret key ~/.s3cfg, in chiarorclone.conf, in chiaro~/.aws/credentials, in chiaroKeychain di macOS, Touch ID per svelarla
Sfogliare uno store a colpo d'occhio norclone ncdu, testualenosì, browser con breadcrumb
Caricare e cancellare oggetti non dal browser
Download ricorsivo di cartelle s3cmd get -rrclone copyaws s3 cp --recursivesì, con avanzamento
Mettere in pausa uno store fermo per non pagarlo nononosì, vault con verifica prima della cancellazione
Gira in CI no, è un'app Mac

Civo Object Storage via S3, le risposte

Qual è l'URL dell'endpoint di Civo Object Storage?
Gli endpoint degli Object Store Civo seguono lo schema https://objectstore.<region>.civo.com con il codice regione in minuscolo, per esempio https://objectstore.lon1.civo.com a Londra o https://objectstore.fra1.civo.com a Francoforte. L'endpoint dipende dalla regione in cui lo store è stato creato. Ogni store mostra anche il proprio endpoint nella dashboard Civo e lo restituisce nel campo objectstore_endpoint della Civo REST API.
Posso usare s3cmd o rclone con Civo Object Storage?
Sì, funzionano entrambi, e così pure la AWS CLI e qualsiasi altro client compatibile S3. Per s3cmd imposta host_base e host_bucket in ~/.s3cfg sull'hostname della regione, per esempio objectstore.fra1.civo.com, e compila access_key e secret_key. Per rclone crea un remote con type = s3, provider = Other, endpoint = https://objectstore.fra1.civo.com e la stessa coppia di key. Per la AWS CLI passa --endpoint-url https://objectstore.fra1.civo.com su ogni comando.
Perché la mia access key di Civo Object Storage non funziona?
Di solito è la regione. Civo dice che gli Object Store sono specifici per regione e che le credenziali sono legate alla regione in cui sono state create, quindi una key creata in FRA1 non si autentica sull'endpoint LON1 anche se appartiene allo stesso account. Crea la credenziale mentre la dashboard è sulla regione dello store. La seconda causa frequente è un client che non ha mai ricevuto l'endpoint, o un host_bucket di s3cmd rimasto al valore di default, così la richiesta parte verso Amazon invece che verso Civo.
Esiste una GUI per Civo Object Storage su Mac?
CivoCloudManager è un'app macOS nativa, macOS 15 o successivo, sul Mac App Store, e conosce Civo: legge endpoint e access key di ogni store dalla Civo API, quindi non c'è niente da configurare. Naviga con i breadcrumb e scarica singoli file, una selezione multipla o un'intera cartella in modo ricorsivo, mentre caricamenti e cancellazioni restano alla CLI. Anche i client S3 generici come Cyberduck o Transmit si collegano a Civo, una volta che digiti l'endpoint e incolli le due key per ogni store.
Cosa fa Pause ai dati di un Object Store Civo?
Pause copia ogni oggetto in un Object Store centrale chiamato civo-cloud-manager dentro il tuo stesso account Civo, confronta chiavi e dimensioni copiate con l'origine e solo allora cancella lo store originale, che smette di costare. Resume ricrea lo store con lo stesso nome e la stessa credenziale, ricopia gli oggetti e verifica di nuovo chiavi e dimensioni prima di svuotare il vault. I dati non escono mai dal tuo account Civo, e la verifica è per nome e dimensione invece che con un hash del contenuto.

Salta la configurazione dell'endpoint.

CivoCloudManager legge endpoint e access key dal tuo account Civo, così lo store si apre invece di chiederti un file di configurazione. Firewall in barra dei menu gratis, acquisto una tantum sul Mac App Store per la dashboard completa.

Scarica dal Mac App Store

Richiede macOS 15 (Sequoia) o successivo.

Torna alla homepage