سؤال

أحاول إنشاء عملية تحميل blobstore لتطبيق GCE المشفر بلغة Python.

ليس لدي تطبيق ويب لاستخدام عملية blobstore_handlers.

ما هي عملية تحميل النقط بهذه الطريقة؟

لقد قمت بتنفيذ نقطة نهاية إنشاء عنوان URL للتحميل:

from google.appengine.ext import blobstore


def blobstore_get_upload_url(self, request):

    upload_url = blobstore.create_upload_url('/upload')
    return self.construct_valid_response(StatusResponse, upload_url)

عنوان URL الذي تم إرجاعه ليس مسارًا صالحًا على التطبيق:

http://127.0.0.1:8080/_ah/upload/ag1kZXZc3RyaW5nLWltciILEhVfX0Jsb2JVcGxvYWRTZXNzaW9uX18YgICAgICAgAsM

عندما أحاول النشر على عنوان URL هذا، أحصل على هذا الخطأ:

The url "/api" does not match any handlers.

تطبيقي yaml:

handlers:
# Endpoints handler
- url: /_ah/spi/.*
    script: app_api.APPLICATION

سؤالي:

هل أحتاج إلى إنشاء برنامج نصي منفصل خارج تطبيق نقاط النهاية الخاص بي لتحميل كائن ثنائي كبير الحجم إليه؟أم أن هناك طريقة لتوجيه عنوان URL للتحميل إلى طريقة نقاط نهاية أخرى للتعامل مع عملية التحميل؟

عندما أحاول تحديد نقطة نهاية أخرى على التطبيق كعنوان URL للتحميل، يتم تجاهلها.

السابق:

upload_url = blobstore.create_upload_url('/api#p/Api/v1/api.app.blobstore_upload')

ملاحظة: لقد قمت بإزالة اسم التطبيق من عنوان URL أعلاه واستبدلته بواجهة برمجة التطبيقات (API)، ولكن عنوان URL الذي أستخدمه هو عنوان URL صالح في التطبيق.

أرى أنه تم إهمال عملية الملف القديمة واستبدالها بعملية التخزين السحابي من Google.هل هذا هو الاتجاه الذي يجب أن أتجه إليه؟

هل كانت مفيدة؟

المحلول 2

قمت بحل هذا باستخدام وظائف API GCS:

href="https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/functions" rel="nofollow"> https://cloud.google.com/appengine/docs/python/googlecloudstorageclient / وظائف

ex:

giveacodicetagpre.

نصائح أخرى

تحميل بلوبستور يعمل في عدة خطوات:

  1. أنشئ عنوان URL للتحميل لمرة واحدة عبر create_upload_url(callbackUrl).أرسل هذا إلى العميل.
  2. عميل يجب ثم استخدام multipart/form-data طلب POST لتحميل البيانات إلى عنوان URL هذا.
  3. يقوم Google باستخراج المحتويات وتخزينها في blobstore ثم يستدعي ملفك callbackUrl.يجب أن يكون لديك معالج محدد على عنوان URL هذا.يتلقى المعالج مفاتيح blobstore التي أنشأها Google للمحتوى الذي تم تحميله.

هذا منشور رائع على استخدام Blobstore مع عميل iOS.المثال في جافا، لذا يرجى التعليق إذا كانت هناك صعوبات في إعادة إنشاء رمز الخلفية في بيثون.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top