プライベートファイルアップロードサイトを構築しています。アリスはファイルをアップロードし、ボブはそれをダウンロードします。
アリスとボブ以外の人はアクセスできないようにする必要があります。私は最初にファイルに複雑な名前(http://domain/download/md5sum.zip
)を付けることを考えていましたが、期限切れのリンクが必要です。だからのようなものhttp://domain/download/tempkey/aaa123/file.zip
。これにより、ファイルのダウンロードとロギングをより細かく制御できるようになります。
私はこれを見つけました:https ://stackoverflow.com/a/2900646 。それは次のことを示唆しています:
class RequestHandler(BaseHTTPServer.BaseHTTPRequestHandler):
def do_GET(self):
# The URL the client requested
print self.path
# analyze self.path, map the local file location...
# open the file, load the data
with open('test.py') as f: data = f.read()
# send the headers
self.send_response(200)
self.send_header('Content-type', 'application/octet-stream') # you may change the content type
self.end_headers()
# If the file is not found, send error code 404 instead of 200 and display a message accordingly, as you wish.
# wfile is a file-like object. writing data to it will send it to the client
self.wfile.write(data)
しかし、これをDjangoで機能させるにはどうすればよいですか?ビュー関数はHTTPResponseオブジェクトを返す必要がありますが、これは返しません。