Jquery 使用django-s3upload上载到S3时保留文件名
我正在使用将文件上载到我的s3存储桶。我已经把它安装好并运行良好,但出于某种原因,我不明白,它将所有上传的文件重命名为一个随机的十六进制字符串,扩展名为.bin。我可以在代码中看到发生这种情况的地方:Jquery 使用django-s3upload上载到S3时保留文件名,jquery,python,django,file-upload,amazon-s3,Jquery,Python,Django,File Upload,Amazon S3,我正在使用将文件上载到我的s3存储桶。我已经把它安装好并运行良好,但出于某种原因,我不明白,它将所有上传的文件重命名为一个随机的十六进制字符串,扩展名为.bin。我可以在代码中看到发生这种情况的地方: def get_upload_params(request): def make_policy(): policy_object = { "expiration": (datetime.now() + timedelta(hours=24)).str
def get_upload_params(request):
def make_policy():
policy_object = {
"expiration": (datetime.now() + timedelta(hours=24)).strftime('%Y-%m-%dT%H:%M:%S.000Z'),
"conditions": [
{ "bucket": settings.AWS_S3_BUCKET_NAME },
{ "acl": "public-read" },
["starts-with", "$key", "uploads/"],
{ "success_action_status": "201" }
]
}
return b64encode(dumps(policy_object).replace('\n', '').replace('\r', ''))
def sign_policy(policy):
return b64encode(hmac.new(settings.AWS_SECRET_ACCESS_KEY, policy, sha).digest())
policy = make_policy()
return HttpResponse(dumps({
"policy": policy,
"signature": sign_policy(policy),
"key": "uploads/" + uuid4().hex + ".bin",
"success_action_redirect": "/"
}), content_type="application/json")
我不知道如何保持文件名完整。完成客户端所有上传工作的jQuery文件是。django-s3upload只是一个演示,它说。你需要改变它的代码来使用不同的S3键。我用不同的S3键来使用它,可以把它上传到我的bucket中。好吧,我只是不想让它自动重命名文件名