Lors du traitement d'images à l'aide d'AWS Lambda, etc. ou lors de son utilisation en tant que ressource d'AWS.rekognition J'espère que cela aide. Cette fois, je vais sauter les paramètres de LINE Developper.
De nombreuses personnes utilisent le SDK lors de recherches similaires, mais j'aimerais éviter de l'utiliser cette fois.
Une partie de la fonction principale
lambda_function.py
import requests
import os
import json
import boto3
from io import BytesIO
#Génération d'en-tête
HEADER = {
'Content-type':
'application/json',
'Authorization':
'Bearer ' +'Jeton d'accès au canal'
}
#main
def lambda_handler(event, context):
#Json Load
body = json.loads(event['body'])
for event in body['events']:
payload = {'replyToken': event['replyToken'], 'messages': []}
#Quand ImageMessage arrive
if event['message']['type'] == 'image':
#HEADER et messages(pyload)Avec post
if len(payload['messages']) > 0:
response = requests.post(
'https://api.line.me/v2/bot/message/reply',
headers=HEADER,
data=json.dumps(payload))
Je veux enregistrer l'image lorsque ImageMessage arrive, donc
lambda_function.py
#Quand ImageMessage arrive
if event['message']['type'] == 'image':
Je voudrais écrire le processus dans cette déclaration IF.
lambda_function.py
MessageId = event['message']['id'] #ID du message
ImageFile = requests.get('https://api-data.line.me/v2/bot/message/
'+ MessageId +'/content',headers=HEADER) #Obtenir du contenu d'image
Image_bin = BytesIO(ImageFile.content)
Image = Image_bin.getvalue() #Acquisition d'image
Obtenir le contenu ← Veuillez lire les détails si vous êtes intéressé.
lambda_function.py
S3 = boto3.client('s3')
FileName = MessageId + '.jpeg' #ID du message+Nom du fichier jpeg
#Mettre le traitement en s3
S3.put_object(Bucket='Nom du godet',
Body=Image, #Photo
Key=FileName) #nom de fichier
Je pense que ce n'est pas grave si vous écrivez le traitement jusqu'à ce point, envoyez l'image depuis LINE et enregistrez-la dans S3. Si vous vous sentez mal à l'aise que l'image soit enregistrée et reste à chaque fois pendant le traitement, écrivez le code suivant Je vais le résoudre.
lambda_function.py
S3.delete_object(Bucket="Nom du godet", Key=FileName) #Supprimer l'image transmise
Recommended Posts