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