get_uploads 来自 Blobstore 上传 returns 空列表,尽管文件显示在存储桶中
get_uploads from Blobstore Upload returns empty list although file shows up in bucket
我最近从开发服务器部署了我的 python GAE 应用程序,但我的图像上传功能停止正常工作...
经过一些测试,blobstore 中的 get_uploads 函数似乎返回了一个空列表,因此我从上传处理程序中得到了一个超出索引的错误(也尝试了 get_file_infos函数并得到相同的结果)
但是,当我检查 GCS 浏览器时,文件已正确上传,所以我的问题似乎是我无法找到将图像 link 从 post 提取到上传处理程序
有人知道为什么会这样吗?如果有办法解决这个问题?
(表单使用 post 方法和 multipart/form-data 所以希望这不是问题)
这是我调用 post 上传处理程序的函数:
upload_url = blobstore.create_upload_url('/upload', gs_bucket_name='BUCKET')
result = urlfetch.fetch(url= upload_url,
payload=self.request.body,
method=urlfetch.POST,
headers=self.request.headers)
这是上传处理程序的代码:
class UploadHandler(blobstore_handlers.BlobstoreUploadHandler):
def post(self):
upload_files = self.get_uploads('file')
blob_info = upload_files[0]
self.response.write(str(blob_info.key()))
你想做什么?
您似乎在尝试 post 将接收到的正文发送到 GCS。为什么不使用 Google 云存储客户端库来编写它。
with gcs.open(gcs_filename, 'w', content_type, options={b'x-goog-acl': b'public-read'}) as f:
f.write(blob)
我最近从开发服务器部署了我的 python GAE 应用程序,但我的图像上传功能停止正常工作...
经过一些测试,blobstore 中的 get_uploads 函数似乎返回了一个空列表,因此我从上传处理程序中得到了一个超出索引的错误(也尝试了 get_file_infos函数并得到相同的结果)
但是,当我检查 GCS 浏览器时,文件已正确上传,所以我的问题似乎是我无法找到将图像 link 从 post 提取到上传处理程序
有人知道为什么会这样吗?如果有办法解决这个问题?
(表单使用 post 方法和 multipart/form-data 所以希望这不是问题)
这是我调用 post 上传处理程序的函数:
upload_url = blobstore.create_upload_url('/upload', gs_bucket_name='BUCKET') result = urlfetch.fetch(url= upload_url, payload=self.request.body, method=urlfetch.POST, headers=self.request.headers)
这是上传处理程序的代码:
class UploadHandler(blobstore_handlers.BlobstoreUploadHandler): def post(self): upload_files = self.get_uploads('file') blob_info = upload_files[0] self.response.write(str(blob_info.key()))
你想做什么?
您似乎在尝试 post 将接收到的正文发送到 GCS。为什么不使用 Google 云存储客户端库来编写它。
with gcs.open(gcs_filename, 'w', content_type, options={b'x-goog-acl': b'public-read'}) as f:
f.write(blob)