Seite 1 von 1

Dateiupload

Verfasst: Samstag 4. Oktober 2008, 10:20
von nemomuk
Hallo,
ich versuche gerade einen Dateiupload mit Python einzurichten.
Und habe mir bereits folgendes Skript erstellt:

Code: Alles auswählen

print 'Content-Type: text/html\n'
import cgi
form = cgi.FieldStorage()

if form.has_key("filename"):
    item = form["filename"]
    if item.file:
        data = item.file.read()
        print len(data)


print """
<form action="index.py" method="post" enctype="multipart/form-data">
    <input type="file" name="filename" />
    <input type="submit" value="Uploaden" />
</form>
"""
Das funktioniert soweit auch ganz gut, aber sobald die Dateigröße ansteigt, funktioniert das Ganze nicht mehr... Hat Python eine interne Einstellung, die ein Upload Limit festlegt (ähnlich php.ini)? Oder muss man hier im Apache etwas umstellen?

Verfasst: Samstag 4. Oktober 2008, 10:29
von Leonidas
Ist natürlich auch die Frage warum du Uralt-CGI nutzt.

Verfasst: Samstag 4. Oktober 2008, 10:32
von nemomuk
Was spricht dagegen, bzw. Alternative?

Verfasst: Samstag 4. Oktober 2008, 10:40
von Leonidas
SchneiderWeisse hat geschrieben:Was spricht dagegen, bzw. Alternative?
Alternative: WSGI. Oder eines der Frameworks, die letztendlich sowieso über WSGI angebunden werden.

Verfasst: Samstag 4. Oktober 2008, 10:42
von lunar
SchneiderWeisse hat geschrieben:Was spricht dagegen, bzw. Alternative?
Die geringe Performance und der völlig Mangel an komfortablen Features, die größere Frameworks so mitbringen. Wenn du an CGI gebunden bist, so kannst du immer noch ein CGI-Gateway für WSGI nutzen.

Verfasst: Samstag 4. Oktober 2008, 10:56
von nemomuk
Perormance spielt eine eher kleine Rolle, da es sich lediglich um Uploads und eine kleine Verwaltungsoberfläche mit Datenbankanbindung handelt - für den Privatgebraucht mit evt. mehreren Nutzern. WSGI kommt wiederum auch nicht in Frage, da es noch nicht im "stable" von Debian ist. Aber sicherheitstechnisch macht es keinen Unterschied?

zu meiner ursprünglichen Frage: Woran kann das liegen?

Verfasst: Samstag 4. Oktober 2008, 11:06
von Leonidas
SchneiderWeisse hat geschrieben:Perormance spielt eine eher kleine Rolle, da es sich lediglich um Uploads und eine kleine Verwaltungsoberfläche mit Datenbankanbindung handelt - für den Privatgebraucht mit evt. mehreren Nutzern.
Ja, aber die Middlewares die du bei WSGI einfach anschließt und die du bei CGI selbst schreibst machen einen unterschied ob du nun daran 3 Tage programmierst oder lieber 2 Wochen, weil du den ganzen Session, Authentifizierungskram etc. selbst machen darfst.
SchneiderWeisse hat geschrieben:WSGI kommt wiederum auch nicht in Frage, da es noch nicht im "stable" von Debian ist.
Hä? WSGI ist ein Standard so wie HTML. Da hättest du genauso sagen können dass HTML nicht in Frage kommt, weil es nicht in Debian Etch ist.

Verfasst: Samstag 4. Oktober 2008, 11:17
von nemomuk
naja, ich meinte mod_wsgi..., was natürlich auch mit fastcgi etc. machbar wäre....

aber dann kann ich gleich ein Framework verwenden... vllt. werde ich das auch machen.

Nur das Problem mit dem File-Upload wird dort auch bestehen...

Verfasst: Samstag 4. Oktober 2008, 11:33
von lunar
SchneiderWeisse hat geschrieben:naja, ich meinte mod_wsgi..., was natürlich auch mit fastcgi etc. machbar wäre....

aber dann kann ich gleich ein Framework verwenden... vllt. werde ich das auch machen.
Um eine WSGI-Anwendung an FastCGI zu hängen, braucht es lediglich flup. Als Framework würde ich das nun nicht bezeichnen ... ;)
Nur das Problem mit dem File-Upload wird dort auch bestehen...
Das muss nicht sein. mod_cgi und mod_fastcgi bzw. mod_fcgi sind unterschiedliche Dinge, die unterschiedliche Einstellungen haben.

Die Begrenzung der Upload-Größe hat sicher nichts mit Python zu tun, ein Pendant zur "php.ini" hat Python glücklicherweise nicht.

Verfasst: Samstag 4. Oktober 2008, 11:39
von nemomuk
dass das kein Framework ist, ist mir schon klar... aber es macht sonderlich viel mehr Aufwand dann gleich ein Framework zu verwenden.

Verfasst: Samstag 4. Oktober 2008, 11:50
von Hyperion
Dann schau Dir doch mal werkzeug an! Das ist ja je nach belieben auch durchaus lightweight.