Ich möchte die Größe einer Datei vor dem Hochladen auf S3 lesen, um zu überprüfen, ob noch genügend Speicherplatz verfügbar ist. Der folgende Code funktioniert. Die Datei ist jedoch leer, wenn sie in S3 hochgeladen wird. Wenn ich den Teil lösche, der die Größe der Datei überprüft, wird sie korrekt hochgeladen. Gibt es eine andere Möglichkeit, die Dateigröße zu erhalten? Die Datei stammt aus einem Upload-Formular einer HTML-Seite und ich lade sie direkt auf S3 hoch, ohne sie vorher auf dem Server zu speichern.Die Datei ist nach dem Lesen der Größe leer
availablestorage = getavailablestorage() #gets the available storage in bytes
latestfile = request.files['filetoupload'] #get the file from the HTML form
latestfile.seek(0,2)
latestsize = latestfile.tell() #this gets the size of the file
if availablestorage < latestsize:
return "No space available. Delete files."
bucketname = request.form.get('spaceforupload')
conn = boto3.client('s3')
conn.upload_fileobj(latestfile, bucketname, latestfile.filename)
return redirect(url_for('showspace', spacename=bucketname))
Manchmal ist es so einfach. Vielen Dank. – user3080315