[PYTHON] Laden Sie Bilder mit Falcon hoch und laden Sie sie herunter

Laden Sie Bilder mit Falcon hoch und laden Sie sie herunter

Ich musste die Bilddatei mit falcon herunterladen, aber ich werde sie hochladen, da es keinen Artikel in Qiita gab.

API-Quellcode

server.py


import os
import json
import uuid
import falcon
from falcon_multipart.middleware import MultipartMiddleware

IMAGE_DIR = './images'
if not os.path.exists(IMAGE_DIR):
    os.mkdir(IMAGE_DIR)

class PostResource:
    def on_post(self, req, resp):
        image = req.get_param('file')
        raw = image.file.read()
        image_id = str(uuid.uuid4())
        filepath = os.path.join(IMAGE_DIR, f'{image_id}.png')
        with open(filepath, 'wb') as fp:
            fp.write(raw)
        resp.status = falcon.HTTP_200
        resp.content_type = 'application/json'
        resp.body = json.dumps({'image_id': image_id})


class GetResource:
    def on_get(self, req, resp, image_id):
        filepath = os.path.join(IMAGE_DIR, f'{image_id}.png')
        if not os.path.exists(filepath):
            resp.status = falcon.HTTP_404
            return

        resp.downloadable_as = filepath
        resp.content_type = 'image/png'

        resp.stream = open(filepath, 'rb')
        resp.status = falcon.HTTP_200


app = falcon.API(middleware=[MultipartMiddleware()])
app.add_route('/images', PostResource())
app.add_route('/images/{image_id}', GetResource())

if __name__ == "__main__":
    from wsgiref import simple_server
    httpd = simple_server.make_server("0.0.0.0", 8000, app)
    httpd.serve_forever()

Startmethode

python3 server.py

Wie rufe ich an?

Bildregistrierung

Wenn Sie das Bild POSTEN, wird die Bild-ID ("44fea721-ef84-41c1-8845-3f2d5ad8b990" im folgenden Beispiel) in JSON zurückgegeben.

curl -X POST -F [email protected] http://localhost:8000/images
{"image_id": "44fea721-ef84-41c1-8845-3f2d5ad8b990"}

Bildreferenz

Rufen Sie es mit der Bild-ID ab, die Sie bei der vorherigen Registrierung des Bildes zurückgegeben haben.

curl -X GET -o out.png http://localhost:8000/images/44fea721-ef84-41c1-8845-3f2d5ad8b990

Referenz

Recommended Posts

Laden Sie Bilder mit Falcon hoch und laden Sie sie herunter
Laden Sie Bilder automatisch mit Scraping herunter
Bilder können mit Google_images_download nicht heruntergeladen werden
Bilder mit Pupil, Python und OpenCV aufnehmen
Laden Sie einfach mp3 / mp4 mit Python und youtube-dl herunter!
Schneiden Sie Bilder aus und verbinden Sie sie mit ImageMagick
Laden Sie Bilder mit Python auf Google Drive hoch
Suchen und laden Sie YouTube-Videos automatisch mit Python herunter
Mit FastAPI können nicht mehrere Bilder aus dem Formular hochgeladen werden
Laden Sie das Kaffeemodell mit Chainer und klassifizieren Sie die Bilder
Massen-Download-Bilder von einer bestimmten URL mit Python
Wavelet-Konvertierung von Bildern mit PyWavelets und OpenCV
Einfache Verwaltungs-App für heruntergeladene Bilder und Gesichtsbilder
Laden Sie Bilder mit tkinter mit GUI auf S3 hoch
Laden Sie Dateien mit Django hoch
Mit Python + Tweepy können Sie Bilder und Videos der Medienzeitleiste abrufen
Massen-Download-Bilder von einer bestimmten Site-URL mit Python
Laden Sie Bilder mithilfe von Anfragen herunter
Zeigen Sie eingebettete Bilder von MP3 und Flac mit Mutagen an
Laden Sie mp4 einfach teilweise mit Python und youtube-dl herunter!
Erstellen Sie einen Stapel von Bildern und blasen Sie sie mit ImageDataGenerator auf
Datei-Upload mit Django
Mit und ohne WSGI
Bild mit Python-Pptx zentrieren
LGTM - Erstellen Sie LGTM-Bilder mit Videos und Fotos und geben Sie GIF-Animationen aus
Trennen Sie Farbbilder in RGB-Bilder und zeigen Sie sie mit OpenCV an
Laden Sie mit einer Action-Kamera aufgenommene Bilder mit einem Mapillay-Skript hoch
Konvertieren Sie verstümmelte gescannte Bilder mit Pillow und PyPDF in PDF
Bei mir cp und Subprocess
Programmieren mit Python und Tkinter
Ver- und Entschlüsselung mit Python
Angrenzende Bilder mit Python Teil 1
Arbeiten Sie mit tkinter und Maus
Python und Hardware-Verwenden von RS232C mit Python-
Speichern Sie Bilder mit Web Scraping
Web-API mit Python + Falcon
Extrahieren und verpacken Sie initrd-Images
Senden und Empfangen von Kolbenbildern
Super Auflösung mit SRGAN und ESRGAN
Kombiniere zwei Bilder mit Django
Group_by mit sqlalchemy und sum
Python mit Pyenv und Venv
Datei-Upload mit Flask + jQuery
Laden Sie die CSV-Datei mit Python herunter
Mit mir, NER und Flair
Funktioniert mit Python und R.
Batch-Download-Bilder von einer bestimmten URL mit Python Modified-Version
[Python] Versuchen Sie, Zeichen aus Bildern mit OpenCV und pyocr zu erkennen
Laden Sie die Bilder und Videos herunter, die in den Tweets enthalten sind, die Ihnen auf Twitter gefallen haben, und laden Sie sie auf Google Drive hoch