Lassen Sie uns sagen, dass ich eine Datei, die lhosts
benannt ist, und es ist ausführbar:Wie behalte ich die Erlaubnis der Datei mit `send_file()`?
-rwxr-xr-x 1 kevin kevin 2.4K Apr 27 21:16 lhosts*
Und hier ist mein Code die Datei mit Flask.send_file()
zu senden:
#!/usr/bin/env python3
from flask import Flask, send_file
app = Flask(__name__)
@app.route('/lhosts')
def lhosts():
return send_file('scripts/lhosts')
app.run(debug=True)
Allerdings, wenn ich versuche zu Senden Sie die Datei an Clients, sie behält die Erlaubnis nicht. Die Berechtigung wird nicht ausführbar:
> wget 'http://127.0.0.1:5000/lhosts' --preserve-permissions
--2016-04-27 22:27:39-- http://127.0.0.1:5000/lhosts
Connecting to 127.0.0.1:5000... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2381 (2.3K) [application/octet-stream]
Saving to: ‘lhosts’
lhosts 100%[================================================================>] 2.33K --.-KB/s in 0s
2016-04-27 22:27:39 (76.7 MB/s) - ‘lhosts’ saved [2381/2381]
> ls -lh lhosts
-rw-r--r-- 1 kevin kevin 2.4K Apr 27 21:16 lhosts
Wie kann ich die Datei ausführbar halten?
Wie sollte die HTTP-Antwort die Berechtigungen anzeigen? Was passiert, wenn der Server unter GNU/Linux läuft, während der Client unter Windows läuft? –
Wenn Sie die Berechtigung beibehalten möchten, können Sie der Ansicht Code hinzufügen, um die Datei vor dem Senden zu komprimieren. Wenn der Empfänger die Datei dekomprimiert, sollte sie die alte Berechtigung haben. – Bastian