python - Appengine Blobstore : Index out of range

标签 python google-app-engine google-cloud-platform google-cloud-storage google-cloud-python

我正在尝试使用 Blobstore API 将文件上传到 Google Cloud Storage。图片上传正确,但随后我尝试处理它(将其链接到用户)。我收到错误:

Index out of range

这是我的代码:

class UploadHandler(blobstore_handlers.BlobstoreUploadHandler):
    def post(self):
        upload_files = self.get_file_infos('file')  # 'file' is file upload field in the form
        file_info = upload_files[0]

        #self.response.headers['Content-Type'] = 'application/x-www-form-urlencoded'
        #self.response.headers.add_header('Access-Control-Allow-Origin', '*')
        gcs_filename = file_info.gs_object_name
        file_key = blobstore.create_gs_key(gcs_filename)

        File(file=file_key, owner=utils.get_current_user(), 
                    url= images.get_serving_url(file_key)).put()

我的代码放在 file_info = upload_files[0] 行。

最佳答案

将文件放入 Google Cloud Storage 存储桶的代码在哪里?

我认为问题可能出在这两行,具体取决于您如何实现 GCS 上传...

gcs_filename = file_info.gs_object_name
file_key = blobstore.create_gs_key(gcs_filename)

如果项目来自 GCS,gs_object_name 应该只返回有意义的结果。如果 gcs_filename 不正确,这也会导致 create_gs_key() 失败。

关于如何将 blobstore API 与 Google Cloud Storage 结合使用,请参阅本文了解详情 - https://cloud.google.com/appengine/docs/python/blobstore/#Python_Using_the_Blobstore_API_with_Google_Cloud_Storage

关于python - Appengine Blobstore : Index out of range,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27321118/

相关文章:

python - 当玩家未击中目标超过 3 次时结束 pygame

google-app-engine - 使用具有不同版本应用程序的 SSL 在 Google App Engine 上设置自定义域(带有子域)

kubernetes - 谷歌 Kubernetes 引擎入口不起作用

google-cloud-platform - GCP Cloud Scheduler 为 HTTP 目标类型抛出错误

python - 提高 python for 循环对嵌套列表中的 ID 进行项目计数的效率

python - Python/Django 中具有拆分模型的循环模块依赖关系

python - Trackpy DriftPredict 漂移参数

java - appengine 中的配置文件激活 :deploy

google-app-engine - Google App Engine 上的搜索 API

kubernetes - NodePort 是否请求部署之间的平衡?