[PYTHON] Machen wir einen Spot Sale Service 8 (Image Uploader Edition)

Ich bemerkte, dass ich eine Artikelregistrierungs- und Bearbeitungsfunktion durchführte. Mit der aktuellen API werden mehrere Bilder mit einer API hochgeladen. Die Übertragungszeit ist sehr lang und die Benutzererfahrung ist schlecht.

Ich habe Mercari (http://mercari.jp) überprüft, um zu sehen, wie es anderen Apps hier geht. Mercari scheint jedes Mal, wenn ein Bild ausgewählt wird, auf den Server hochzuladen.

Deshalb habe ich versucht, es nachzuahmen. Der Uploader ist fertig. Ich dachte, ich würde Mercari berühren, aber eines Tages möchte ich auch eine Bildverarbeitungsfunktion hinzufügen!


#Bild hochladen
class PutImage(UserLoginAuthRequestHandler):

    def post(self):
        if self.invalidateAccount():
            Common.writeUserResponseError(self, 401,u"Ungültige Sitzung")
            return

        blob    =   self.request.get('blob')
        content_type = self.request.params['blob'].type

        blobHash = hashlib.md5(blob).hexdigest()
        gcsPath = Common.createImagePath(blobHash)
        Common.saveToGCS(gcsPath,blob,content_type)


        entity = ImageFile()
        entity.path = gcsPath
        entity.md5  = blobHash

        entity.put()

        res = dict(
            url = webapp2.uri_for('GetImage',_full=True,imageid=entity.key.id())
        )

        Common.writeUserResponseSuccess(self, res )


#Gibt das angegebene Bild zurück
class GetImage(UserLoginAuthRequestHandler):

    def get(self):
        imageid = int(self.request.get('imageid'))

        item = ImageFile.get_by_id(imageid)

        path = item.path

        gcs_file = gcs.open(path)
        gcs_stat = gcs.stat(path)

        self.response.content_type = gcs_stat.content_type
        self.response.content_type_params = None
        self.response.write(gcs_file.read())
        gcs_file.close()





app = webapp2.WSGIApplication(
                            [
                                webapp2.Route('/user/api/resource/putimage', PutImage,'PutImage'),
                                webapp2.Route('/user/api/resource/getimage', GetImage,'GetImage'),
                            ],
                            debug=Common.isDebug()
)

Mit diesem Gefühl wurde die Registrierungs- / Bearbeitungsfunktion von Kreiselementen hinzugefügt. https://github.com/nagai/freemarket/tree/20140429 Nächstes Mal werden wir einen Spot Sale-Veranstaltungsort schaffen.

Recommended Posts

Machen wir einen Spot Sale Service 8 (Image Uploader Edition)
Machen wir einen Spot Sale Service 2
Machen wir einen Spot Sale Service 1
Machen wir einen Spot Sale Service 3
Machen wir einen Spot Sale Service 4 (in Python Mini Hack-a-thon)
Machen wir einen Discord Bot.
Machen Sie Responder zu einem Daemon (Dienst)
Lassen Sie uns einen LINE-Bot mit verschiedenen Diensten erstellen [ngrok edition]
Machen wir eine Remote-Rumba [Hardware]
Machen Sie eine Santa-Kennung aus einem Santa-Bild
Lassen Sie uns eine Remote-Rumba erstellen [Software]
Lassen Sie uns eine GUI mit Python erstellen.
Machen wir einen Blockbruch mit wxPython
Lassen Sie uns ein Diagramm mit Python erstellen! !!
Machen wir mit xCAT einen Spacon
Lassen Sie uns mit Python ein Shiritori-Spiel machen
Machen Sie Jupyter Notebook zu einem Dienst unter CentOS
Machen Sie Unity Accelerator zu einem Dienst unter Linux
Lassen Sie uns mit Python langsam sprechen
Lassen Sie uns mit PLY 1 eine einfache Sprache erstellen
Lassen Sie uns mit flask-babel eine mehrsprachige Site erstellen
Erstellen Sie ein Webframework mit Python! (1)
Machen wir mit Pylearn 2 eine dreiäugige KI
Lassen Sie uns eine Kombinationsberechnung mit Python durchführen
Machen wir einen Twitter-Bot mit Python!
Erstellen Sie ein Webframework mit Python! (2)
Lassen Sie uns ein Backend-Plug-In für Errbot erstellen
Ersetzen wir UWSC durch Python (5) Machen wir einen Roboter
Lassen Sie uns mit SWIG ein Modul für Python erstellen