OpenStack Swift (またはその他のストレージ システム) にいくつかのファイルを保存しています。そして、私の django アプリケーションは、ユーザーが Swift バックエンドからこれらのファイルをダウンロードするためのブラウザー ベースの GUI を提供します。
(1) Each file will have a URL such as: http://domain.com/files/file1
(2) User could use browser or any other client program based on HTTP to download files.
静的ファイルのダウンロードを次のようにテストしました。
def download(request):
try:
#TODO
file_name = 'E:/sample.docx'
fsock = open(file_name,"r")
mime_type_guess = mimetypes.guess_type(file_name)
if mime_type_guess is not None:
response = HttpResponse(fsock, mimetype=mime_type_guess[0])
response['Content-Length'] = os.path.getsize(file_name)
response['Content-Disposition'] = 'attachment; filename=' + file_name
except IOError:
response = HttpResponseNotFound()
return response
私の質問は次のとおりです。
(1) ダウンロード ビューからファイルをダウンロードできましたが、ダウンロードされるファイルのサイズは常に 1k です。ここで何が問題なのですか?
(2) OpenStack Swift などの他の Object Storage バックエンドに保存されている動的ファイルのダウンロードを提供する方法について、まだ手がかりがありません。