使用Python从Google App读取本地文件

时间:2012-06-17 21:55:51

标签: python google-app-engine file-upload

我正在尝试在不使用表单的情况下将文件上传到我的Google App中的blobstore。但我坚持如何让应用程序读取我的本地文件。我是python和Google Apps的新手,但经过一些剪切和粘贴之后,我最终得到了这个:

import webapp2
import urllib
import os

from google.appengine.api import files
from poster.encode import multipart_encode

class Upload(webapp2.RequestHandler):
  def get(self):
    # Create the file in blobstore
    file_name = files.blobstore.create(mime_type='application/octet-stream')

    # Get the local file path from an url param
    file_path = self.request.get('file')

    # Read the file
    file = open(file_path, "rb")
    datagen, headers = multipart_encode({"file": file})
    data = str().join(datagen) # this is supposedly memory intense and slow

    # Open the blobstore file and write to it
    with files.open(file_name, 'a') as f:
        f.write(data)

    # Finalize the file. Do this before attempting to read it.
    files.finalize(file_name)

    # Get the file's blob key
    blob_key = files.blobstore.get_blob_key(file_name)

现在的问题是我真的不知道如何获取本地文件

1 个答案:

答案 0 :(得分:2)

您无法从应用程序本身读取本地文件系统,您需要使用http POST将文件发送到应用程序。

您当然可以在另一个应用程序中执行此操作 - 您只需要创建包含文件内容的mime multipart消息并将其发布到您的应用程序,发送应用程序将只需创建您要发布到应用程序的http请求app手动。您应该阅读如何使用c#创建mime mulitpart消息。