从URL上载文件到GAE Blobstore

时间:2013-07-22 22:08:34

标签: python google-app-engine blobstore

我需要从网址获取视频,例如:

https://zencoder-temp-storage-us-east-1.s3.amazonaws.com/o/20130722/5aacb76fc3fd47715c0329d1235dcccf/4fc612e92131e159abc761f7d54d86b5.mp4?AWSAccessKeyId=AKIAI456JQ76GBU7FECA&Signature=AGgZb1eMr105RXcoQFp8yFFTfFg%3D&Expires=1374614893

然后使用Google App Engine将其保存到blobstore(如果blobstore无法直接从URL下载,则可能是Google云端存储)是否有一种简单的方法可以执行此操作?我已经设置好以便我可以让用户上传视频,但我不确定是这样做的。我正在寻找URLFetch库吗?

会是这样的:

class UploadHandler(blobstore_handlers.BlobstoreUploadHandler):
  def post(self):
    #I'm just not sure what to do here, how I can get that 'file' from a URL
    upload_files = self.get_uploads('file')
    blob_info = upload_files[0]

    video = Video(
        title = "some title",
        video_ref = blob_info.key())
    video.put()

1 个答案:

答案 0 :(得分:1)

是的,您需要使用urlfetch,然后使用google云存储客户端库(https://developers.google.com/appengine/docs/python/googlecloudstorageclient/functions#open)来编写结果。您需要考虑urlfetch响应大小限制为32mb,因此您需要将下载拆分为32mb,并且还有60秒的用户请求限制或10分钟的任务队列限制或使用没有超时限制的后端。 / p>

您还可以直接上传到blobstore或cloudstorage(https://developers.google.com/appengine/docs/python/blobstore/#Uploading_a_Blob),这是由设计用于处理这些上传的特殊实例处理的。

相关问题