Translated by AM 24.10.2023
Wie man mit S3cmd oder boto3 auf privaten Objektspeicher zugreift auf CREODIAS
Einführung
Privater Objektspeicher (S3-Buckets im Projekt des Benutzers) kann auf verschiedene Weise genutzt werden. Um beispielsweise auf Dateien im Objektspeicher zuzugreifen, können Buckets mit s3fs eingehängt und als Dateisystem verwendet werden. Weitere Tools, die für eine bessere Leistung eingesetzt werden können, sind S3cmd (Befehlszeilentool) und boto3 (AWS SDK für Python).
S3cmd
Um über S3cmd Zugriff auf Object Storage Buckets zu erhalten, müssen Sie zunächst mit diesem Tutorial Ihre eigenen EC2-Zugangsdaten generieren /cloud/How-to-generate-ec2-credentials-on-Creodias.
Sobald die EC2-Anmeldeinformationen generiert sind, stellen Sie sicher, dass Ihre Instanz oder Ihr lokaler Rechner mit S3cmd ausgestattet ist:
s3cmd --version
Ansonsten kann S3cmd so installiert werden: .. code:
apt install s3cmd
Nun kann S3cmd mit dem folgenden Befehl konfiguriert werden:
s3cmd --configure
Geben Sie die folgenden Werte ein und bestätigen Sie sie mit der Eingabetaste (Enter):
New settings:
Access Key: (your EC2 Access Key)
Secret Key: (your EC2 Secret Key)
Default Region:
S3 Endpoint: https://s3.fra1-1.cloudferro.coms
DNS-style bucket+hostname:port template for accessing a bucket: https://s3.fra1-1.cloudferro.com
Encryption password: (your password)
Path to GPG program: /usr/bin/gpg
Use HTTPS protocol: yes
HTTP Proxy server name:
HTTP Proxy server port: 0
Test access with supplied credentials? [Y/n] Y
Please wait, attempting to list all buckets...
Success. Your access key and secret key worked fine :-)
Now verifying that encryption works...
Not configured. Never mind.
Save settings? [y/N] y
Nach diesem Vorgang sollte es Ihnen möglich sein, Ihren Objektspeicher aufzulisten und darauf zuzugreifen.
Listen Sie Ihre Buckets mit auf:
eouser@vm01:$ s3cmd ls
2022-02-02 22:22 s3://bucket
Um die verfügbaren Befehle für S3cmd anzuzeigen, geben Sie folgenden Befehl ein:
s3cmd -h
boto3
Warnung
Wir empfehlen dringend die Verwendung von virtualenv zur Isolierung von Python-Paketen. Das Tutorial zur Konfiguration lautet wie folgt: /cloud/How-to-install-Python-virtualenv-or-virtualenvwrapper-on-Creodias
Wenn virtualenv aktiviert ist:
(myvenv) eouser@vm01:~$ pip3 install boto3
Oder falls das Paket global installiert wird: .. code:
eouser@vm01:~$ sudo pip3 install boto3
Ein einfaches Skript für den Zugriff auf Ihren privaten Bucket:
import boto3
def boto3connection(access_key,secret_key,bucketname):
host='https://https://s3.fra1-1.cloudferro.com'
s3=boto3.resource('s3',aws_access_key_id=access_key,
aws_secret_access_key=secret_key, endpoint_url=host,)
bucket=s3.Bucket(bucketname)
for obj in bucket.objects.filter():
print('{0}:{1}'.format(bucket.name, obj.key))
#For Python3
x = input('Enter your access key:')
y = input('Enter your secret key:')
z = input('Enter your bucket name:')
boto3connection(x,y,z)
Speichern Sie Ihre Datei mit der Erweiterung .py und führen Sie den folgenden Befehl im Terminal aus:
python3 <filename.py>
Geben Sie den Zugangsschlüssel, den Secret Key und den Bucket-Namen ein. Wenn alles korrekt ist, sollten Sie eine Ausgabe in folgendem Format sehen: <bucket_name>:<file_name>.