In IoT-bezogenen Projekten war es erforderlich, Dateien in S3 vom Gateway (im Folgenden: GW) herunterzuladen und hochzuladen. Versuchen Sie daher, sie mit Python (2.7) und Boto3 (AWS SDK für Python) zu implementieren. Ich tat. Ich werde zu diesem Zeitpunkt ein Memorandum über das Verfahren aufbewahren.
Melden Sie sich mit ssh-Verbindung bei GW an und installieren Sie boto3 mit pip. (GW hat Python2.7 Pip installiert)
sudo pip install boto3
Wenn Sie eine bestimmte Version angeben möchten, installieren Sie diese wie folgt.
sudo pip install boto3==1.0.0
Bei Verwendung von boto3 muss eine Richtlinie in IAM festgelegt werden. Diesmal habe ich einen IAM-Benutzer mit gesetztem S3FullAccess erstellt. Legen Sie bei Bedarf die erforderlichen Mindestrichtlinien fest, z. B. Nur Lesen oder Eingrenzen der Buckets, auf die zugegriffen werden kann.
Legen Sie die Zugriffsschlüsselinformationen des zuvor erstellten IAM-Benutzers fest.
sudo pip install awscli
aws configure
AWS Access Key ID: xxxxxxxxxxxxxxxxx
AWS Secret Access Key: xxxxxxxxxxxxxxxxx
Default region name: ap-northeast-1
Default output format:
Damit sind die Einstellungen abgeschlossen. Sie können die Einstellungen unter "~ / .aws / credentials" und "~ / .aws / config" überprüfen.
Beginnen Sie mit dem Schreiben wie folgt, um bote3 zu importieren und mit S3-Dateien herumzuspielen.
boto3_test.py
# -*- coding: utf-8 -*-
import boto3
s3 = boto3.resource('s3')
Wenn Sie andere Dienste verwenden, schreiben Sie wie folgt. (DynamoDB-Beispiel)
boto3_test.py
# -*- coding: utf-8 -*-
import boto3
# S3
s3 = boto3.resource('s3')
# DynamoDB
dynamo = bot3.resource('dynamodb')
Verwenden Sie download_file (). Beim Herunterladen von fuga.txt im Bucket Name Hoge
boto3_test.py
# -*- coding: utf-8 -*-
import boto3
s3 = boto3.resource('s3')
bucket = s3.Bucket('hoge')
bucket.download_file('fuga.txt', 'fuga.txt')
Der Bucket ist der gleiche, wenn Sie fuga.txt im Ordner hogehoge herunterladen möchten
boto3_test.py
#---Kürzung---
bucket = s3.Bucket('hoge')
bucket.download_file('hogehoge/fuga.txt', 'fuga.txt')
Verwenden Sie upload_file (). Beim Hochladen von fuga.txt in den Bucket Name Hoge
boto3_test.py
#---Kürzung---
bucket = s3.Bucket('hoge')
bucket.upload_file('fuga.txt', 'fuga.txt')
Der Bucket ist der gleiche, wenn Sie fuga.txt in den Ordner hogehoge hochladen
boto3_test.py
#---Kürzung---
bucket = s3.Bucket('hoge')
bucket.upload_file('fuga.txt', 'hogehoge/fuga.txt')
Sie können die Dateien jetzt in S3 herunterladen und hochladen. Übrigens sollen alle Objektinformationen im Bucket angezeigt werden
boto3_test.py
#---Kürzung---
bucket = s3.Bucket('hoge')
print bucket.name
Eine Liste wird mit angezeigt.
Es fiel mir schwer, weil ich Python vor der Verwendung von boto3 nicht so oft berührt hatte, aber das offizielle Dokument war ziemlich gut vorbereitet. Es war hilfreich. Im Gegenteil, wenn Sie keine Ablehnungsreaktion auf Englisch zeigen, sollten Sie das offizielle Dokument lesen. Schweiß
Recommended Posts