Я пытаюсь зашифровать blob перед загрузкой его в Blobstore Google App Engine.Google App Engine: Шифровать Blobs перед загрузкой
Вот обработчик
class MyUploadHandler(webapp2.RequestHandler):
def post(self):
upload_url = blobstore.create_upload_url('/myAfterUploadHandler')
inFile = self.request.POST.multi['file'].file
outFile = StringIO.StringIO()
encryptFile(inFile,outFile,DATAKEY)
datagen, headers = multipart_encode({"file": outFile})
request = urllib2.Request(upload_url, \
datagen, headers)
self.response = urllib2.urlopen(request)
У меня возникли проблемы с последней строкой, где urllib2 пытается разместить запрос.
вот окончательная парта длинного исключения
File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/urlfetch.py", line 270, in fetch
allow_truncated, follow_redirects, validate_certificate)
File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/urlfetch.py", line 326, in make_fetch_call
request.set_payload(payload)
File "cpp_message.pyx", line 124, in cpp_message.SetScalarAccessors.Setter (third_party/apphosting/python/protobuf/proto1/cpp_message.cc:2229)
TypeError: <type 'instance'> has type <type 'instance'>, but expected one of: str, unicode
Не ответ на эту конкретную проблему, но я бы посоветовал вам использовать [клиент Python для облачного хранилища Google] (https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/), если это возможно. –
Вот мой gist, показывающий, как приложение может отправить blob в blobstore. https://gist.github.com/voscausa/9222732 – voscausa
@voscausa Спасибо! Считаете ли вы, что GCS будет лучше? Я действительно рассматриваю рекомендации Jaime – Sindico