Я пытаюсь реализовать функцию в Django для загрузки изображения с клиента (приложение для iPhone) на сервер Amazon S3.Приложение для iPhone отправляет HttpRequest (метод PUT) с содержимым изображения в HTTPBody.Например, клиент помещает изображение по следующему URL-адресу: http://127.0.0.1:8000/uploadimage/sampleImage.png/
Моя функция в Django выглядит так, чтобы обрабатывать такой запрос PUT и сохранять файл на S3:
def store_in_s3(filename, content):
conn = S3Connection(settings.ACCESS_KEY, settings.PASS_KEY) # gets access key and pass key from settings.py
bucket = conn.create_bucket("somepicturebucket")
k = Key(bucket)
k.key = filename
mime = mimetypes.guess_type(filename)[0]
k.set_metadata("Content-Type", mime)
k.set_contents_from_string(content)
k.set_acl("public-read")
def upload_raw_data(request, name):
if request.method == 'PUT':
store_in_s3(name,request.raw_post_data)
return HttpResponse('Upload of raw data to S3 successful')
else:
return HttpResponse('Upload not successful')
Моя проблема в том, как сообщить моей функции название изображения.В моем urls.py у меня есть следующее, но это не сработает:
url(r'^uploadrawdata/(\d+)/', upload_raw_data ),
Теперь, насколько я знаю, d + обозначает цифры, поэтому здесь, очевидно, бесполезно, когда я передаюимя файла.Однако мне было интересно, если это правильный путь в первую очередь.Я прочитал этот пост здесь , и он предлагает следующую строку кода, которую я совсем не понимаю:
file_name = path.split("/")[-1:][0]
Кроме того, я понятия не имею, что представляет собой остальная часть кодавсе о.Я немного новичок во всем этом, поэтому любые предложения о том, как просто загрузить изображение, будут очень кстати.Спасибо!