Я пытаюсь создать супер простой сценарий загрузки файлов, используя библиотеку boto, а не другие. Из того, что я пробовал, он чувствует, что он должен работать, но это не так.Django Boto и Upload to S3 - это 400 Bad Request
Ошибка я получаю сейчас:
S3ResponseError: 400 Bad Request
Вот код, у меня есть, на мой взгляд:
def upload_file(request):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
file = request.FILES['file']
filename = file.name
conn = boto.connect_s3()
bucket = conn.create_bucket('some-bucket-name')
from boto.s3.key import Key
k = Key(bucket)
k.key = filename
k.send_file(file)
k.content_type = mimetypes.guess_type(filename)[0]
k.set_contents_from_stream(file.chunks())
k.set_acl('public-read')
return HttpResponseRedirect('/')
else:
form = UploadFileForm()
return render_to_response('home/upload.html',
{'form':form},
context_instance=RequestContext(request))
Если я могу изменить его, чтобы сохранить локально это работает, так что загрузка к s3, который сломан. Я протестировал set_contents_from_string
и работает для строковых данных. Однако все, что касается файлов или потоков, я получаю вышеприведенную ошибку. Я где-то пропустил настройку или что-то, что я делаю, просто совершенно неправильно?
Получили ошибку 400 из-за какой-нибудь текст VS бинарного файла выпуска на Windows ... –
Как вы установили файл конфигурации Boto? – LKM