Ich weiß, wir können jetzt ein Medientyp-Feld auf die python-eve REST-API framework
hochladen/veröffentlichen und es wird in mongodb
gespeichert werden. Gibt es eine Möglichkeit, die Speicherung dieser Medien zu ändern? Zum Beispiel ein entfernter Speicherserver, z.B. amazon S3
? So dass wir nur die URL des Bildes in mongodb anstatt des ganzen Bildes speichern?wie man ein Bild durch Python-eve auf einen externen Speicherserver, z.B. S3?
5
A
Antwort
2
Während die standard behaviour auf GridFS zu speichern, können Sie auch Ihre eigene MediaStorage
Unterklasse schaffen, die gespeichert werden können, wo immer Sie (Dateisystem, S3, etc.) wollen
So etwas würde den Trick tun:
from eve.io.media import MediaStorage
class AmazonS3MediaStorage(MediaStorage):
""" Your actual implementation """
pass
app = Eve(media=AmazonS3MediaStorage)
if __name__ == '__main__':
app.run()
prüft die tatsächliche MediaStorage
Klasse für Implementierungsdetails und/oder die tatsächliche GridFSMediaStorage Klasse als Referenz sehen.
@JohnZ wenn Sie mit einem S3 'MediaStorage' Klasse kommen und daran interessiert sind, teilen sie mit mir nehmen Sie bitte Kontakt, könnten wir es in die Eve Repo oder zumindest hinzufügen, eine Verlängerung machen aus ihm heraus . –
in der Tat eine gute Idee! erhalten Sie – John
geschrieben Ich versuche, ein FS Medienspeicher (nur für das Studium) und zwei Dinge hapenning umzusetzen: 1- Die get nach dem immer 2- i Empfang „resourceWarning: unclosed Datei“ bin, setzen aufgerufen wird auf die Schaffung . Soll ich einen Stream oder etwas Ähnliches zurückgeben? – FabioCosta