Condividere un oggetto con un indirizzo temporaneo
Obiettivo
OpenStack Swift è un servizio di storage di oggetti che permette di archiviare un grande numero di file. Per poterli gestire è necessario autenticarsi con un token ogni volta che si esegue una richiesta API, in modo da verificare i permessi di lettura e scrittura su Swift. Il token viene generato dal sistema di autenticazione tramite le credenziali dell’utente.
Per condividere un file con un amico o un collega senza fornire le informazioni personali relative all’autenticazione, è possibile creare un indirizzo temporaneo (TempURL).
Questa guida ti mostra come utilizzare la funzionalità TempURL per condividere temporaneamente un file.
Prerequisiti
- Aver preparato l’ambiente per utilizzare l’API OpenStack.
- Impostare le variabili d'ambiente OpenStack.
- Aver installato Python sul proprio dispositivo
Procedura
Principio di funzionamento
TempURL è una funzionalità che permette di decidere quali file condividere, mettendoli a disposizione per un tempo stabilito. L’indirizzo temporaneo viene generato utilizzando questi elementi:
- indirizzo del punto di accesso (ad esempio “https://storage.sbg1.cloud.ovh.net”)
- percorso completo dell’oggetto che contiene il progetto, il container e il nome dell’oggetto (ad esempio
v1/AUTH_tenant/default/file) - parametro tempurlsign, che corrisponde alla firma generata in base a chiave di sicurezza, metodo HTTP, percorso del file e data di scadenza
- parametro url_expires, che corrisponde alla data di scadenza dell’indirizzo temporaneo
Genera l’indirizzo temporaneo (tempURL)
1. Genera la chiave
Per prima cosa è necessario generare una chiave, che potrà essere utilizzata per tutti i file del progetto e i futuri indirizzi temporanei.
Per motivi di sicurezza consigliamo di scegliere una chiave lunga (almeno 20 caratteri), anche se è possibile crearne una nuova in qualsiasi momento.
Per generare la chiave sono disponibili diverse soluzioni, come i comandi sha512sum e sha256sum. Utilizza il metodo più adatto alla tua situazione e al livello di cifratura desiderato. Ecco alcuni esempi, dal più al meno efficace:
- date +%s | sha512sum
- date +%s | sha256sum
- date +%s | md5sum
Una volta generata la chiave, è possibile configurarla sul progetto tramite il client Swift (ricordati di sostituire la stringa “12345” con la tua chiave):
o con curl:
Il nome completo dell’header è X-Account-Meta-Temp-Url-Key ma il client Swift utilizza Temp-Url-Key perché aggiunge automaticamente X-Account-Meta.
Una volta configurata la chiave sull’account, utilizza il client Swift per verificare la corretta applicazione dell’header:
O con curl:
2. Genera l’URL
Queste operazioni possono essere effettuate offline. Per generare l'indirizzo temporaneo è possibile utilizzare il comando indicato qui sotto, sostituendo i valori generici con le proprie informazioni.
Ad esempio:
- GET: metodo HTTP
- 60: link disponibile per 60 secondi (valore personalizzabile)
- /v1/AUTH_tenant/default/file: percorso verso il file (in questa fase, non è necessario aggiungere il punto di accesso)
- 12345: da sostituire con la propria chiave
Nel campo AUTH_tenant, sostituire tenant con il proprio OS_TENANT_ID o OS_TENANT_NAME.
Lo script fornirà un TempURL in cui è indicato percorso del file, firma e data di scadenza.
Per il corretto funzionamento dell’URL è sufficiente aggiungere l’indirizzo del punto di accesso davanti al proprio Temp URL:
Nel nostro esempio, l’URL temporaneo permette a chiunque di scaricare l’oggetto file dal container default, entro 60 secondi e senza autenticazione. Scaduti i 60 secondi l’URL non sarà più funzionante.
Gli utenti avanzati che intendono generare un Temp URL senza utilizzare lo script swift-temp-url possono consultare la documentazione ufficiale di OpenStack.
Per saperne di più
Contatta la nostra Community di utenti all’indirizzo https://community.ovh.com/en/.