Translated by AM 24.10.2023

Wie man mit S3cmd oder boto3 auf privaten Objektspeicher zugreift auf CODE-DE

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 Erstellen und Verwalten von EC2-Anmeldedaten auf CODE-DE.

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: Wie installiert man Python virtualenv/virtualenvwrapper

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>.