Python 地面军事系统与blobstore的等价物是什么;创建“上传”url;?

Python 地面军事系统与blobstore的等价物是什么;创建“上传”url;?,python,google-app-engine,google-cloud-storage,Python,Google App Engine,Google Cloud Storage,我们目前使用blobstore.create_upload_url来创建要在前端上使用的上载url请参阅。 然而,随着谷歌向谷歌云存储(GCS)的推进,我希望使用GCS而不是blobstore。我们目前使用blobstore.create\u upload\u url,但我在GCS文档中找不到任何等效内容。我错过什么了吗?有没有更好的方法从前端上传文件到地面军事系统 谢谢 Rob如果您将提供gs\u bucket\u name到blobstore。创建上传\u url文件将存储在GCS而不是bl

我们目前使用blobstore.create_upload_url来创建要在前端上使用的上载url请参阅。 然而,随着谷歌向谷歌云存储(GCS)的推进,我希望使用GCS而不是blobstore。我们目前使用blobstore.create\u upload\u url,但我在GCS文档中找不到任何等效内容。我错过什么了吗?有没有更好的方法从前端上传文件到地面军事系统

谢谢
Rob

如果您将提供
gs\u bucket\u name
blobstore。创建上传\u url
文件将存储在GCS而不是blobstore中,这在官方文档中有描述:

您可以看看webapp2中的简单上载处理程序实现

from google.appengine.ext import blobstore
from google.appengine.ext.webapp import blobstore_handlers
import webapp2
import cloudstorage as gcs


class Upload(blobstore_handlers.BlobstoreUploadHandler):
    """Upload handler
    To upload new file you need to follow those steps:

    1. send GET request to /upload to retrieve upload session URL
    2. send POST request to URL retrieved in step 1
    """
    def post(self):
        """Copy uploaded files to provided bucket destination"""
        fileinfo = self.get_file_infos()[0]
        uploadpath = fileinfo.gs_object_name[3:]
        stat = gcs.stat(uploadpath)

        # remove auto generated filename from upload path 
        destpath = "/".join(stat.filename.split("/")[:-1])

        # copy file to desired location with proper filename 
        gcs.copy2(uploadpath, destpath)
        # remove file from uploadpath
        gcs.delete(uploadpath)

    def get(self):
        """Returns URL to open upload session"""

        self.response.write(blobstore.create_upload_url(
            success_path=uri_for('upload'),
            gs_bucket_name="mybucket/subdir/subdir2/filename.ext"))

看看你仍然可以使用blobstore.create_upload_url for GCS这里的文档中有描述:谢谢@manRo所以指定bucketname是blob进入GCS而不是blobstore所需要的全部吗?也许把这个放在答案中,我可以接受。是的,如果你提供bucket名称,这是正确的。文件将上载到GCSalso,注意GCS也有这个,隐藏在api的xml部分。看到和
from google.appengine.ext import blobstore
from google.appengine.ext.webapp import blobstore_handlers
import webapp2
import cloudstorage as gcs


class Upload(blobstore_handlers.BlobstoreUploadHandler):
    """Upload handler
    To upload new file you need to follow those steps:

    1. send GET request to /upload to retrieve upload session URL
    2. send POST request to URL retrieved in step 1
    """
    def post(self):
        """Copy uploaded files to provided bucket destination"""
        fileinfo = self.get_file_infos()[0]
        uploadpath = fileinfo.gs_object_name[3:]
        stat = gcs.stat(uploadpath)

        # remove auto generated filename from upload path 
        destpath = "/".join(stat.filename.split("/")[:-1])

        # copy file to desired location with proper filename 
        gcs.copy2(uploadpath, destpath)
        # remove file from uploadpath
        gcs.delete(uploadpath)

    def get(self):
        """Returns URL to open upload session"""

        self.response.write(blobstore.create_upload_url(
            success_path=uri_for('upload'),
            gs_bucket_name="mybucket/subdir/subdir2/filename.ext"))