[PYTHON] Je voulais supprimer plusieurs objets en s3 avec boto3

installer boto3

$ pip3 install boto3

Les paramètres d'accès à s3 sont un fichier

aws.py


import boto3

s3 = boto3.client(
    's3',
    aws_access_key_id = {access key},
    aws_secret_access_key = {secret_access_key},
    region_name = 'ap-northeast-1')
    
s3_bucket = 'sample-app'

Créer une méthode pour faire fonctionner s3

services/s3_service.py


from aws import s3, s3_bucket

class S3Service:

    #Obtenir le contenu de l'objet
    def get_object():
        s3_dir = 'image/sample.json'
        sample_json = s3.get_object(Bucket=s3_bucket, Key=s3_dir)
        body = sample_json['Body'].read()

        print(body.decode('utf-8'))

    #Obtenez plusieurs objets
    def get_objects(id):
        s3_dir = 'image/{0}/'.format(id)
        image_objs = s3.list_objects_v2(Bucket=s3_bucket, Prefix=s3_dir)

        for image in image_objs['Contents']: 
            print(image['Key'])

    #Supprimer plusieurs objets
    def delete_objects(id):
        s3_dir = 'image/{0}/'.format(id)
        image_objs = s3.list_objects_v2(Bucket=s3_bucket, Prefix=s3_dir)

        for obj in image_objs['Contents']: 
            key = obj['Key']
            s3.delete_object(Bucket=s3_bucket, Key=key)

Appelez la classe de service

controller/image_controller.py


from flask import Blueprint, make_response
from services.s3_service import S3Service

# set route
sample_controller = Blueprint('sample_controller_router', __name__)

@sample_controller.route('/delete/<id>', methods=['PUT'])
def delete_images(id):
   S3Service.delete_objects(id)
   return make_response(jsonify({'code': 200}))

Recommended Posts

Je voulais supprimer plusieurs objets en s3 avec boto3
Utilisez boto3 pour accéder à S3
Je veux détecter des objets avec OpenCV
Je voulais résoudre ABC160 avec Python
Je voulais vraiment copier avec du sélénium
Implémentation de DQN avec TensorFlow (je voulais ...)
Je voulais résoudre NOMURA Contest 2020 avec Python
J'ai essayé d'intégrer Keras dans TFv1.1
Je souhaite afficher plusieurs images avec matplotlib.
Je voulais installer Python 3.4.3 avec Homebrew + pyenv
Connectez-vous facilement à AWS avec plusieurs comptes
Je voulais connaître le nombre de lignes dans plusieurs fichiers et j'ai essayé de l'obtenir avec une commande
Je voulais aussi vérifier les indices de type avec numpy
Comment obtenir plusieurs objets de modèle au hasard dans Django
Je veux faire la transition avec un bouton sur le ballon
Manipuler des objets S3 avec Boto3 (API de haut niveau et API de bas niveau)
Supprimez 1 000 objets stockés dans AWS S3 à la fois.
J'étais accro au grattage avec Selenium (+ Python) en 2020
Je voulais résoudre le concours de programmation Panasonic 2020 avec Python
Je souhaite supprimer facilement une colonne contenant NA dans R
J'ai essayé deux façons de combiner plusieurs commits avec Git
Opération S3 avec python boto3
Je n'arrive pas à me connecter à la page d'administration avec Django 3
J'ai capturé le projet Toho avec Deep Learning ... je le voulais.
Je voulais calculer un tableau avec la méthode des subs de Sympy
Comment supprimer avec SQLAlchemy?
J'ai essayé de créer un article dans Wiki.js avec SQL Alchemy
J'ai essayé de décrire le trafic en temps réel avec WebSocket
Je veux résoudre APG4b avec Python (seulement 4.01 et 4.04 au chapitre 4)
Je voulais créer une présentation intelligente avec Jupyter Notebook + nb present
Ce à quoi j'étais accro avec json.dumps dans l'encodage base64 de Python
J'ai essayé de traiter l'image en "style croquis" avec OpenCV
Je voulais faire quelque chose comme la pipe d'Elixir en Python
Je voulais résoudre le problème ABC164 A ~ D avec Python
J'ai essayé de traiter l'image dans un "style de dessin au crayon" avec OpenCV
Deux façons d'afficher plusieurs graphiques dans une seule image avec matplotlib
Comment supprimer plusieurs positions (index) spécifiées dans une liste Python
J'ai essayé de me connecter automatiquement à Twitter avec du sélénium (RPA, scraping)
Connectez-vous à plusieurs bases de données avec SQL Alchemy
Chaîne de hachage que je voulais éviter (2)
Je voulais faire évoluer cGAN vers ACGAN
6 façons d'enchaîner des objets en Python
Connectez-vous à Elastic MQ avec boto
Supprimer plusieurs éléments dans la liste python
Je veux déboguer avec Python
Chaîne de hachage que je voulais éviter (1)
Générer une URL signée S3 avec boto
J'ai essayé de supprimer régulièrement les mauvais tweets avec l'API AWS Lambda + Twitter
J'ai créé un outil pour parcourir automatiquement plusieurs sites avec Selenium (Python)
(Matplotlib) Je veux dessiner un graphique avec une taille spécifiée en pixels
Comment gérer l'erreur SSL lors de la connexion à S3 avec Python boto
C'est plus récent, mais je voulais essayer le calcul de l'IMC avec python.
[Introduction à Python] Comment supprimer des lignes qui remplissent plusieurs conditions dans Pandas.DataFrame
Si vous souhaitez obtenir plusieurs statistiques avec groupby of pandas v1
Maintenance de l'environnement réalisée avec Docker (je souhaite post-traiter GrADS en Python
[Google Colab] Je souhaite afficher plusieurs images côte à côte dans une vignette
Téléchargez ce que vous avez dans la demande vers S3 avec AWS Lambda Python
Copier des données d'Amazon S3 vers Google Cloud Storage avec Python (boto)
J'ai essayé d'implémenter PLSA en Python
J'ai essayé l'analyse de régression multiple avec régression polypoly