Google cloud storage 可恢复上载到GCS谷歌云存储签名url的内容已损坏

Google cloud storage 可恢复上载到GCS谷歌云存储签名url的内容已损坏,google-cloud-storage,pre-signed-url,resumable,Google Cloud Storage,Pre Signed Url,Resumable,我试图模拟一个可恢复的上传到GCS签名的url,使用Postman做两次PUT,看看它是如何工作的 参考几篇文章后: 我终于做到了,并成功地得到了200确定,但该文件已损坏。以下是步骤: 0)。发布到我们的服务器(运行NodeJS 8.11)以获取一个bucket签名的url,action==“resumable”。服务器代码为: const file = bucket.file(fileName); const config = { action:

我试图模拟一个可恢复的上传到GCS签名的url,使用Postman做两次PUT,看看它是如何工作的

参考几篇文章后:

我终于做到了,并成功地得到了200确定,但该文件已损坏。以下是步骤:

0)。发布到我们的服务器(运行NodeJS 8.11)以获取一个bucket签名的url,action==“resumable”。服务器代码为:

      const file = bucket.file(fileName);
      const config = {
        action: 'resumable',
        version: 'v4',
        expires,
        contentType
      };
      file.getSignedUrl( config, (error, url) => {
        if (error) return reject(error);
        resolve(url);
      });
这将返回签名的url,如下所示:


https://storage.googleapis.com/Very 你想做的事很有趣。您能添加从第1步得到的完整响应吗?@Kevin确定,响应状态为201,正文为“1”,响应标题如下:
Content-Type:text/plain;charset=utf-8
X-GUploader-UploadID:AEnB2UrF…(一个上传id)
位置:https://storage.googleapis.com/I 按照你在文件和问题中的步骤进行。我注意到,在步骤1中,您可能忘记添加内容长度:0标题。但这似乎对你得到的回应没有影响。然而,引起我注意的是内容类型。我看到您在响应中收到一个文本/纯文本,但随后您使用内容类型头pdf/应用程序管理它。我认为这可能会导致你看到的腐败。。。但我一点也不确定…@Kevin,我需要在步骤1、2和4中发送
内容类型:application/pdf
标题,否则GCS将投诉签名不匹配(我在生成signedUrl时添加了内容类型)。“Content-Type:text/plain”是我从GCS返回的响应头,它告诉我如何解释响应正文,在所有步骤1-4中,我得到了“Content-Length:0”,响应中根本没有正文。一种是我的请求头,它是PDF文件,另一种是来自GCS的响应头,我认为它们是正确的。
Content-Length: 262144
Content-Range: bytes 0-262143/730417
Content-Type: application/pdf
Content-Type: text/plain; charset=utf-8
Range: bytes=0-262143
X-Range-MD5: ccafa0beacd8c342bb460b95249114dc
X-GUploader-UploadID: AEnB2UqIJL_jf.....
Content-Length: 0
Content-Range: bytes */730417
Content-Type: text/plain; charset=utf-8
X-GUploader-UploadID: (same_upload_id)
Range: bytes=0-262143
X-Range-MD5: ccafa0beacd8c342bb460b95249114dc
Content-Length: 468273
Content-Range: bytes 262144-730416/730417
Content-Type: application/pdf
x-goog-generation: 1568787913806411
x-goog-stored-content-length: 730417
ETag: "018677cb75c5a307217eec21fa18ee91"
Content-Length: 0
Content-Type: text/html; charset=UTF-8