Я не знаю, полезно это или нет, но у меня была похожая проблема, которую я решил, как показано ниже.Я полагаю, что это потому, что заголовки для Content-Type должны соответствовать метаданным файла:
def sign_s3_upload(request):
object_name = request.GET['objectName']
content_type = mimetypes.guess_type(object_name)[0]
if content_type == 'audio/x-wav':
content_type = 'audio/wav'
signed_url = conn.generate_url(
300,
"PUT",
settings.AWS_STORAGE_BUCKET_NAME,
'uploads/' + object_name,
headers = {'Content-Type': content_type,
'x-amz-acl': 'public-read',
})
return HttpResponse(json.dumps({'signedUrl': signed_url}))