次の問題があります。私のアプリケーションでは、ユーザーが静的サーバーに画像をアップロードできるようにしています。各画像には、ビューを更新するたびに生成される一意の ID があります。アプリケーションのこの部分は、Squid と Apache を介してプロキシされます。しかし、私の管理部分 (プロキシされていない部分) では、同じコードを使用してファイルをアップロードすることもできます。そして奇妙なことに、私の一意の ID はここにキャッシュされており、apache が python キャッシュをクリアすると ~15 分後に変更されます。以前にそのような問題に遭遇した人はいますか?
ここにいくつかのコード、アップロードフォーム:
<form method="post" target="upload_target" action="{{ upload_url }}" enctype="multipart/form-data">
{{ form.as_p }}
<p style="display:none">
<input type="hidden" maxlength="64" name="myfileid" id="myfileid" value="{{ myfileid }}" >
</p>
<p>
<input id="submit" type="submit" value="Add">
</p>
<iframe id="upload_target" name="upload_target" src="" style="width:0;height:0;border:0px solid #fff;"></iframe>
</form>
見る :
def manage_element_image(request, object_id):
template = 'management/add_element.html'
upload_url = settings.STATIC_SERVER
form = ElementImageForm()
myfileid = create_did()
try:
object = Element.objects.get(id=int(object_id))
except:
object = None
result = render_to_string(template, RequestContext(request, {
'upload_url': upload_url,
'form': form,
'myfileid': myfileid,
'objectid': object_id,
'object': object,
}))
return HttpResponse(result)
および関数生成 ID :
def create_id():
hash = "ABCDEFGHIJKLMNOPQRSTUWVXYZ0123456789"
length = 43
prefix = "ELEMENT"
number = ""
for i in range(0, length):
number += random.choice(hash)
return prefix + number
私はダミーのキャッシュを使用していますが、クエリのみに使用しています。