【发布时间】:2014-02-26 00:06:33
【问题描述】:
我正在尝试在后端创建一个 GCS 可恢复上传 url,将其发送到前端以获取 javascript 以开始将大文件直接上传到存储桶。
我目前的问题是我不知道如何开始上传。
所有documentation 都没有任何代码,所以我没有任何依据。
目前我的代码是这样的:
def start_resumable_upload(self):
API_ENDPOINT = (
'https://www.googleapis.com/upload/storage/v1beta2/'
'b%(bucket)s/o?uploadType=resumable&name=%(object_name)s'
)
url_params = {
'bucket': BUCKET,
'object_name': self.filename
}
headers = {
'X-Upload-Content-Type': self.content_type,
'X-Upload-Content-Length': 0,
'Content-Type': 'application/json'
}
r = urlfetch.fetch(
url=API_ENDPOINT % url_params,
method=urlfetch.POST,
headers=headers
)
return r.content
start_resumable_upload 是我创建的文件模型中的一个方法,用于跟踪数据库上的元数据,因此,self.filename 将具有文件名,content_type 将是 mime 类型等等。
该请求的响应是:
400. 这是一个错误。
您的客户发出了格式错误或非法的请求。我们知道的就这些。
这有点不可接受。
感谢任何帮助。
【问题讨论】:
-
您不使用google-api-python-client的任何原因?
-
@jterrace 是的,我在文档中没有提到这一点。让我看看。 -- 我将如何使用开始可恢复上传?
-
BUCKET 是否有前导“/”?如果不是,您的 URL 格式不正确。您还需要对请求进行身份验证:developers.google.com/storage/docs/json_api/v1/how-tos/…
-
是的,它确实有一个前导,它是 /projectname-bucket
标签: python google-app-engine google-cloud-storage