Swift
Siehe auch
Swift ist ein verteilter Objekt-/Blob-Speicher. Das OpenStack Object Store-Projekt, bekannt als Swift, bietet eine Cloud-Speicher-Software, mit der grosse Datenmengen über eine einfache API gespeichert und abgerufen werden können. Swift ist auf Skalierbarkeit ausgelegt und für auf Zuverlässigkeit, Verfügbarkeit und konkurrierende Zugriffe hin optimiert.
Tipp
Wer Infomaniak Swift Storage und Cyberduck auf Mac oder Windows verwendet, muss die URL https://swift02-api.cloud.infomaniak.ch und diese „Project:Domain:Username“-Struktur verwenden: sb_project_SBI-AB123456:default:SBI-AB123456
Installation
pip3 install --user python-swiftclient
pip3 install --user python-keystoneclient
Verwendung
In den Beispielen wird der Infomaniak Swift Object-Storage verwendet.
Tipp
Der Umgang mit swift
wird bedeutend einfacher, wenn man vorher eine OpenStack.rc-Datei „sourced“, um sich damit die (nachfolgend gezeigten) tausend Parameter zu sparen. Ein Beispiel für solch eine rc-Datei findet sich weiter unten.
source path/to/openstack.rc
swift list --lh
Verzeichnis-Listing anzeigen (ohne .rc-File):
swift \
--os-auth-url=https://swiss-backup02.infomaniak.com/identity/v3 \
--os-username=SBI-AB123456 \
--os-password='mypassword' \
--auth-version=3 \
--os-tenant-name=sb_project_SBI-AB123456 \
--os-user-domain-name=default \
list --lh
Beispiel-Ausgabe mit Bedeutung:
count bytes modify-timestamp bucket-name
110 568M 2022-12-16 23:54:04 host.example.com
...
9.5K 37G
Swift-Container löschen:
swift \
--os-auth-url=https://swiss-backup02.infomaniak.com/identity/v3 \
--os-username=SBI-AB123456 \
--os-password='mypassword' \
--auth-version=3 \
--os-tenant-name=sb_project_SBI-AB123456 \
--os-user-domain-name=default \
delete \
mybucket
Quota für einen Container einrichten:
source path/to/openstack.rc
swift stat mybucket
# 5GB for example
swift post --meta 'quota-bytes: 5000000000' mybucket
swift stat mybucket
Quota für einen Container entfernen:
source path/to/openstack.rc
swift stat mybucket
swift post --meta 'quota-bytes: ' mybucket
swift stat mybucket
OpenStack.rc-Datei
export OS_AUTH_URL=https://api.pub1.infomaniak.cloud/identity/v3
export OS_PROJECT_NAME=PCP-ABCDEF1
export OS_PROJECT_DOMAIN_NAME=default
export OS_USERNAME=PCU-ABCDEF1
export OS_USER_DOMAIN_NAME=default
export OS_PROJECT_ID=07f32f66709d4de6aca23bad819ced3d
export OS_IDENTITY_API_VERSION=3
export OS_INTERFACE=public
export OS_REGION_NAME=dc3-a
# To avoid being prompted for your password each time,
# write your password below and uncomment the line
OS_PASSWORD='linuxfabrik'
[ -z "$OS_PASSWORD" ] && read -e -p "Please enter your OpenStack Password for project $OS_PROJECT_NAME as user $OS_USERNAME: " OS_PASSWORD
export OS_PASSWORD
Swift Cheat Sheet
# List containers/objects
swift list
swift list container_name
# Create a container with the default storage policy
swift post mybucket
# Set access list
swift post --read-acl 'project:*' test
swift post --write-acl 'project:linus' test
# Upload
swift upload mybucket ~/myobject.txt --object-name myobject.txt
# Stats
swift stat mybucket
Built on 2023-03-17