Google Cloud Storage仅存储每个文件(48 B)



我正在使用HTML <form>上传二进制JPEG文件,以托管在Google App Engine上的Python WebApp服务器上。服务器方法接收整个图像(成功地打印了诸如文件大小/类型等),但未能将其写入Google Cloud Storage Bucket。最终在GCS存储桶上的内容仅为48个字节的损坏。

def handleUpload(self):
  client = self._get_storage_client()
  bucket = client.get_bucket(config.CLOUD_STORAGE_BUCKET)
  results = []
  for name, fieldStorage in self.request.POST.items():
    if type(fieldStorage) is unicode:
      continue
    result = {}
    fileName = urllib.unquote(fieldStorage.filename)
    blob = bucket.blob(fileName)
    blob.upload_from_string(
        str(fieldStorage.file),fieldStorage.type)
    url = blob.public_url
    if isinstance(url, six.binary_type):
        url = url.decode('utf-8')
    results.append(result)
  return results

弄清楚了。从行为上讲,它应该是fieldstorage.file.read(),而不是fieldstorage.file,因为它使用临时缓冲区读取文件,而不是整个文件。

相关内容

  • 没有找到相关文章

最新更新