2010-01-27 22 views
6

AppEngine'in standart API'si, dosyaların bir HTML formundan yüklendiğini varsayar. Ben olmayan bir Html istemci tarafından çağrılabilir REST API yöntemi (Flash, iPhone vb)Doğrudan AppEngine'in Blobstore Veri Koyma

kod ben çalışma almaya çalışıyorum dan Blobstore bir dosya göndermek için çalışıyorum:

aşağıdaki hatayı alıyorum

# Get the blobstore upload url  
upload_url = blobstore.create_upload_url("/activities/upload_finished"); 

# Make sync call to the blobstore url to post our image 
result = urlfetch.fetch(url=upload_url, 
         payload=request.FILES, 
         method=urlfetch.POST, 
         headers={'Content-Type': 'multipart/form-data'}) 
:

ValueError: Invalid boundary in

bir fikrin?
Web sitesi aracılığıyla hiç kimse blob mağazasına kaydetmeyi denemedi mi?

multipart form: ''

cevap

4

Sadece içerik türünü belirleyerek bir çok parçalı forma düzenli yazı yapamaz - sadece yanlış içerik türü ile URL olarak kodlanmış veri gönderiyorsunuzdur.

email modülünü kullanarak veya this gibi el ile uygun bir çok parçalı form oluşturmanız gerekir.

Ayrıca bkz. this question.

7

App Engine (version 1.4.3) allows you to directly write data to the blobstore.
Artık yükleme URL yöntemini kullanmanız gerekmiyor.

+0

doğru, lütfen dikkat edin bu özelliğin Deneysel olarak işaretlenmiş olduğuna dikkat edin (ne anlama geldiğini bilmiyor musunuz) –

+5

@Yonatan Yani "İşe yaramıyorsa ve sitenizi kırıyorsanız ağlamaya gelmeyin" :) ve ayrıca "API'yi son röleye kadar değiştirebiliriz" –

+1

şimdi kullanımdan kaldırılmış gibi görünüyor – emerix