Dans les projets liés à l'IoT, il était nécessaire de télécharger et de télécharger des fichiers dans S3 à partir de la passerelle (ci-après GW), alors essayez de l'implémenter en utilisant python (2.7) et boto3 (AWS SDK pour python). J'ai fait. Je garderai un mémorandum de la procédure à ce moment-là.
Connectez-vous à GW avec une connexion ssh et installez boto3 avec pip. (GW a installé python2.7 pip)
sudo pip install boto3
Si vous souhaitez spécifier une version spécifique, procédez comme suit.
sudo pip install boto3==1.0.0
Lors de l'utilisation de boto3, il est nécessaire de définir une stratégie dans IAM. Cette fois, j'ai créé un utilisateur IAM avec l'ensemble S3FullAccess. Si nécessaire, définissez les stratégies minimales nécessaires, telles que la lecture seule ou la réduction des compartiments accessibles.
Définissez les informations de clé d'accès de l'utilisateur IAM créé précédemment.
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:
Ceci termine les réglages. Vous pouvez vérifier les paramètres dans "~ / .aws / credentials" et "~ / .aws / config".
Pour importer bote3 et manipuler des fichiers S3, commencez à écrire comme suit.
boto3_test.py
# -*- coding: utf-8 -*-
import boto3
s3 = boto3.resource('s3')
Si vous souhaitez utiliser d'autres services, écrivez comme suit. (Exemple DynamoDB)
boto3_test.py
# -*- coding: utf-8 -*-
import boto3
# S3
s3 = boto3.resource('s3')
# DynamoDB
dynamo = bot3.resource('dynamodb')
Utilisez download_file (). Lors du téléchargement de fuga.txt dans le nom du bucket hoge
boto3_test.py
# -*- coding: utf-8 -*-
import boto3
s3 = boto3.resource('s3')
bucket = s3.Bucket('hoge')
bucket.download_file('fuga.txt', 'fuga.txt')
Le bucket est le même, si vous souhaitez télécharger fuga.txt dans le dossier hogehoge
boto3_test.py
#---réduction---
bucket = s3.Bucket('hoge')
bucket.download_file('hogehoge/fuga.txt', 'fuga.txt')
Utilisez upload_file (). Lors du téléchargement de fuga.txt dans le nom du bucket hoge
boto3_test.py
#---réduction---
bucket = s3.Bucket('hoge')
bucket.upload_file('fuga.txt', 'fuga.txt')
Le bucket est le même, si vous téléchargez fuga.txt dans le dossier hogehoge
boto3_test.py
#---réduction---
bucket = s3.Bucket('hoge')
bucket.upload_file('fuga.txt', 'hogehoge/fuga.txt')
Vous pouvez maintenant télécharger et télécharger les fichiers dans S3. Au fait, il s'agit d'afficher les informations de chaque objet dans le seau
boto3_test.py
#---réduction---
bucket = s3.Bucket('hoge')
print bucket.name
Une liste s'affiche avec.
J'ai eu du mal car je n'avais pas beaucoup touché python avant d'utiliser boto3, mais le document officiel était plutôt bon. Cela a été utile. Au contraire, si vous ne montrez pas de réaction de rejet à l'anglais, vous devriez lire le document officiel. Transpiration
Recommended Posts