Bei der Verarbeitung von Bildern mit AWS Lambda usw. oder bei der Verwendung als Ressource von AWS.rekognition Ich hoffe, es hilft. Dieses Mal werde ich die Einstellungen von LINE Developper überspringen.
Viele Leute verwenden das SDK, wenn sie ähnliche Suchvorgänge durchführen, aber ich möchte es diesmal vermeiden.
Teil der Hauptfunktion
lambda_function.py
import requests
import os
import json
import boto3
from io import BytesIO
#Header-Generierung
HEADER = {
'Content-type':
'application/json',
'Authorization':
'Bearer ' +'Kanalzugriffstoken'
}
#main
def lambda_handler(event, context):
#Json Load
body = json.loads(event['body'])
for event in body['events']:
payload = {'replyToken': event['replyToken'], 'messages': []}
#Wenn ImageMessage eintrifft
if event['message']['type'] == 'image':
#HEADER und Nachrichten(pyload)Mit Post
if len(payload['messages']) > 0:
response = requests.post(
'https://api.line.me/v2/bot/message/reply',
headers=HEADER,
data=json.dumps(payload))
Ich möchte das Bild speichern, wenn ImageMessage eintrifft
lambda_function.py
#Wenn ImageMessage eintrifft
if event['message']['type'] == 'image':
Ich möchte den Prozess in diese IF-Anweisung schreiben.
lambda_function.py
MessageId = event['message']['id'] #Nachrichten ID
ImageFile = requests.get('https://api-data.line.me/v2/bot/message/
'+ MessageId +'/content',headers=HEADER) #Holen Sie sich Bildinhalte
Image_bin = BytesIO(ImageFile.content)
Image = Image_bin.getvalue() #Bildaufnahme
Inhalt abrufen ← Bitte lesen Sie die Details, wenn Sie interessiert sind.
lambda_function.py
S3 = boto3.client('s3')
FileName = MessageId + '.jpeg' #Nachrichten ID+Dateiname JPEG
#Setzen Sie die Verarbeitung auf s3
S3.put_object(Bucket='Eimername',
Body=Image, #Foto
Key=FileName) #Dateiname
Ich denke, es ist in Ordnung, wenn Sie die Verarbeitung bis zu diesem Punkt schreiben, das Bild von LINE senden und es in S3 speichern. Wenn Sie sich unwohl fühlen, dass das Bild gespeichert wird und jedes Mal während der Verarbeitung verbleibt, schreiben Sie den folgenden Code Ich werde es lösen.
lambda_function.py
S3.delete_object(Bucket="Eimername", Key=FileName) #Übertragenes Bild löschen
Recommended Posts