Object Store is schaalbare opslag die je via onder andere de OpenStack Swift-API beheert. Met rclone upload, download en synchroniseer je bestanden vanaf Windows, macOS of Linux.
In deze handleiding installeer je rclone, download je de actuele projectgegevens uit Horizon, maak je de Swift-remote objectstore aan en controleer je lees- en schrijfrechten met een lege testcontainer.
- Gebruik een OpenStack-project waarvoor Object Store en de Swift-API actief zijn.
- Het gedownloade
clouds.yaml-bestand bevat geen wachtwoord. Gebruik het wachtwoord van de OpenStack-gebruiker die in het bestand staat. - Behandel
clouds.yamlen je wachtwoord als vertrouwelijke gegevens. Deel ze niet en voeg ze niet toe aan een repository.
Benodigdheden
- Object Store-project: een OpenStack-project waarvoor de Swift-API actief is.
- OpenStack-gebruiker: de gebruikersnaam en het bijbehorende wachtwoord voor het Object Store-project.
-
Horizon: toegang tot het OpenStack-dashboard om
clouds.yamlte downloaden. - Lokale computer: een ondersteunde Windows-, macOS- of Linux-installatie waarop je rclone installeert.
Rclone installeren
Installeer rclone voor je besturingssysteem. Gebruik na de installatie rclone version om te controleren of de opdracht beschikbaar is.
Windows
Stap 1
Open de officiële rclone-downloadpagina en download het zipbestand voor jouw Windows-architectuur. Gebruik bij een gangbare 64-bits Intel- of AMD-computer de download voor Windows AMD64.
Stap 2
Open het gedownloade zipbestand en pak de map uit. Verplaats rclone.exe daarna naar een vaste map, bijvoorbeeld:
C:\Program Files\rclone
Gebruik geen tijdelijke downloadmap, omdat de verwijzing in Path anders niet meer klopt wanneer je de map later verplaatst of verwijdert.
Stap 3
Open het startmenu, zoek naar ‘Omgevingsvariabelen’ en open ‘De omgevingsvariabelen voor je account bewerken’.
Stap 4
Selecteer onder ‘Gebruikersvariabelen’ de variabele ‘Path’ en klik op ‘Bewerken’. Klik op ‘Nieuw’, voeg de map met rclone.exe toe en bevestig alle vensters met ‘OK’.
C:\Program Files\rclone
Heb je geen variabele met de naam Path? Klik dan op ‘Nieuw’, gebruik Path als naam en voeg de map als waarde toe.
Stap 5
Sluit alle geopende PowerShell- en opdrachtpromptvensters. Open daarna een nieuw venster, zodat Windows de bijgewerkte Path-variabele gebruikt.
Controleer de installatie:
rclone version
macOS
Stap 1
Installeer rclone met Homebrew, een package manager voor macOS:
brew install rclone
Stap 2
Controleer de installatie:
rclone version
Linux
Stap 1
Installeer de actuele stabiele rclone-release met het officiële installatiescript:
sudo -v ; curl https://rclone.org/install.sh | sudo bash
sudo -v vraagt vooraf om je beheerderswachtwoord. Het installatiescript controleert de aanwezige versie en installeert zo nodig de actuele stabiele release.
Stap 2
Controleer de installatie:
rclone version
clouds.yaml downloaden
Stap 1
Log in op het Horizon-dashboard en selecteer bovenaan het Object Store-project dat je met rclone wilt gebruiken.
Stap 2
Klik in het linkermenu op ‘Project’ > ‘API Access’.
Stap 3
Klik op ‘Download OpenStack RC File’ > ‘OpenStack clouds.yaml File’. Horizon downloadt het bestand clouds.yaml.
Open het bestand in een teksteditor. Een actuele download bevat deze structuur:
clouds:
openstack:
auth:
auth_url: <auth-url>
username: <gebruikersnaam>
project_id: <project-id>
project_name: <projectnaam>
user_domain_name: <gebruikersdomein>
region_name: <regio>
interface: "public"
identity_api_version: 3Neem in de volgende stappen de waarden achter auth_url, username, project_id, user_domain_name en region_name letterlijk uit jouw bestand over. Gebruik niet de placeholders uit dit voorbeeld.
Het gedownloade bestand bevat geen wachtwoord. Gebruik bij de rclone-prompt key het wachtwoord van de gebruiker achter username.
De Object Store-remote configureren
Stap 1
Open een terminal, PowerShell of de opdrachtprompt en start de interactieve configuratie:
rclone configRclone bewaart de remote in het lokale configuratiebestand van rclone. Je hoeft deze configuratie daarom maar één keer per computer en gebruiker uit te voeren.
Stap 2
Kies n voor een nieuwe remote. Gebruik daarna deze naam:
objectstoreTyp bij Storage de waarde swift. Gebruik de tekstwaarde in plaats van het getoonde nummer, omdat het nummer tussen rclone-versies kan veranderen.
Stap 3
Vul de prompts als volgt in. ‘Enter’ betekent dat je het veld leeg laat en alleen op Enter drukt.
| Rclone-prompt | Antwoord | Bron of uitleg |
|---|---|---|
env_auth |
false |
Kies handmatige invoer van de Swift-credentials. |
user |
<gebruikersnaam> |
Neem username over uit clouds.yaml. |
key |
<wachtwoord> |
Gebruik het wachtwoord van deze OpenStack-gebruiker. |
auth |
<auth-url>/v3 |
Neem auth_url over en voeg /v3 toe. Staat er al een afsluitende slash, gebruik dan slechts één slash voor v3. |
user_id |
Enter | Je gebruikt de gebruikersnaam in plaats van een user-ID. |
domain |
<gebruikersdomein> |
Neem user_domain_name over uit clouds.yaml. |
tenant |
Enter | Je gebruikt de project-ID bij tenant_id; vul niet ook de projectnaam in. |
tenant_id |
<project-id> |
Neem project_id over uit clouds.yaml. |
tenant_domain |
Enter | Een projectdomein is niet nodig wanneer je de project-ID gebruikt. |
region |
<regio> |
Neem region_name exact over uit clouds.yaml. |
storage_url |
Enter | Rclone haalt het Swift-endpoint uit de OpenStack-servicecatalogus. |
auth_token |
Enter | Rclone vraagt zelf een token aan met de gebruikerscredentials. |
application_credential_id |
Enter | Deze handleiding gebruikt gebruikerscredentials. |
application_credential_name |
Enter | Deze handleiding gebruikt gebruikerscredentials. |
application_credential_secret |
Enter | Deze handleiding gebruikt gebruikerscredentials. |
auth_version |
Enter | De authenticatieversie staat al als /v3 in de opgegeven URL. |
endpoint_type |
Enter voor public
|
Dit komt overeen met interface: "public" in clouds.yaml. |
storage_policy |
Enter | Gebruik de standaard storage policy van het Object Store-project. |
Stap 4
Kies n bij ‘Edit advanced config?’. Controleer de getoonde samenvatting en kies daarna y bij ‘Keep this "objectstore" remote?’. Kies tot slot q om de configuratie af te sluiten.
De configuratie controleren
Gebruik altijd een dubbele punt achter de remotenaam. Bekijk de beschikbare Swift-containers:
rclone lsd objectstore:De verbinding werkt wanneer rclone de containers toont of de opdracht zonder foutmelding afsluit als het project nog geen containers bevat.
Bekijk de objecten in een bestaande container door <containernaam> te vervangen door de werkelijke containernaam:
rclone ls objectstore:<containernaam>
Een testcontainer aanmaken
Maak een lege testcontainer aan:
rclone mkdir objectstore:rclone-testControleer of rclone-test in het containeroverzicht staat:
rclone lsd objectstore:Zie je de container, dan werken zowel de authenticatie als de schrijfrechten voor het Object Store-project.
De testcontainer verwijderen
Verwijder de lege testcontainer:
rclone rmdir objectstore:rclone-testControleer daarna opnieuw het containeroverzicht:
rclone lsd objectstore:De container rclone-test hoort niet meer in de uitvoer te staan. rclone rmdir verwijdert alleen een lege container en voorkomt daardoor dat je onbedoeld objecten verwijdert.
Veelvoorkomende fouten
-
Rclone behandelt de remotenaam als lokale map: controleer of het commando
objectstore:met een dubbele punt bevat. Zonder dubbele punt verwijst rclone naar een lokale map. -
HTTP 404 tijdens authenticatie: controleer of de waarde bij
autheindigt op/v3. De download uit Horizon kan een basis-URL zonder versienummer bevatten. - Response didn't have storage url and auth token: de authenticatie kan zijn gelukt, maar de geselecteerde projectservicecatalogus bevat geen Swift-endpoint. Controleer bovenaan Horizon of je het juiste Object Store-project hebt geselecteerd en of Swift voor dat project actief is.
-
Geen verbinding na een gewijzigde regio: neem
region_nameopnieuw en exact over uit de actueleclouds.yamlvan hetzelfde project. -
Authenticatiefout na het invullen van de projectgegevens: gebruik
project_idbijtenant_iden laattenantleeg. Controleer ook de gebruikersnaam, het wachtwoord enuser_domain_name. -
rclonewordt niet herkend in Windows: sluit PowerShell of de opdrachtprompt na het aanpassen vanPathen open een nieuw venster. Controleer ook of de map metrclone.exeexact inPathstaat. -
De testcontainer kan niet worden verwijderd:
rclone rmdirverwijdert alleen een lege container. Verwijder of verplaats eerst eventuele testobjecten en voer de opdracht daarna opnieuw uit.
Samenvatting
Je hebt rclone geïnstalleerd en met de actuele gegevens uit clouds.yaml gekoppeld aan de Swift-API van je Object Store-project. Daarna heb je de verbinding gecontroleerd, een lege testcontainer aangemaakt en deze weer verwijderd.
Meer achtergrond over de gebruikte opslagtermen lees je in Wat is een Object Store S3-Bucket/Container?.