我正在构建一个需要让用户上传大文件的网络应用。我想使用Google云端存储。我花了几天时间阅读文档,而且我还不确定如何从浏览器实际启动上传。
我知道为此目的需要一个签名的URL(允许匿名用户上传到存储桶),我可以在服务器上生成并发送到浏览器。
但是,JavaScript Client Library似乎只能在具有身份验证作为用户或服务帐户的应用程序服务器上运行。例如,@google-cloud/storage包具有生成签名URL的方法,但不能使用该签名URL上传文件。
我错过了什么?
PS - 这些将是大文件,因此执行可恢复的上传会很不错。
更新:据我所知(hints here),您只需要对签名的网址进行PUT或POST即可。所以我想我应该找一个包装XHR的通用文件上传工具。 (也许是jQuery?)
答案 0 :(得分:1)
我不相信这样的图书馆存在。您可能只想使用标准JavaScript或您喜欢的库来删除HTTP调用。
您将对签名的URL进行初始POST。这将导致201,如此:
HTTP/1.1 201 Created
Location: https://example.storage.googleapis.com/music.mp3?upload_id=tvA0ExBntDa...gAAEnB2Uowrot
Date: Fri, 01 Oct 2010 21:56:18 GMT
Content-Length: 0
Content-Type: audio/mpeg
“位置”标题中的网址(包括upload_id参数)是您将使用数据跟踪PUT的网址。该操作可以中断并恢复。
有关于如何在这里使用XML的可恢复上传的更多文档:https://cloud.google.com/storage/docs/xml-api/resumable-upload