gpt4 book ai didi

google-cloud-storage - 如何将文件分块上传到谷歌存储?

转载 作者:行者123 更新时间:2023-12-01 02:43:45 27 4
gpt4 key购买 nike

我正在尝试以多个 block 但已签名的 URL 将文件上传到谷歌存储。

以下是我正在执行的步骤:

  1. 使用 Node.js 创建可续传的上传 URL。

示例网址:https://www.googleapis.com/upload/storage/v1/b/MYBUCKET/o?name=sdk2.txt&uploadType=resumable&upload_id=AEnB2UrmFY9CKwkHFxsYdT71LcWa0zUVjG6iYfr9mHiwsIaG3c1goFiVURUPz6KFTIhtywndse00XaOkH7ftXPf82S7bNVRhPg

  1. 启动可恢复的上传 session :

POST https://www.googleapis.com/upload/storage/v1/b/MYBUCKET/o?name=sdk2.txt&uploadType=resumable&upload_id=AEnB2UrmFY9CKwkHFxsYdT71LcWa

使用这些 header :

Content-Type:text/plain
name:sdk2.txt
Content-Length:0
x-goog-resumable:start

HTTPS 响应:200 OK

  1. 发送第一个 block :

PUT https://www.googleapis.com/upload/storage/v1/b/MYBUCKET/o?name=sdk2.txt&uploadType=resumable&upload_id=AEnB2UrmFY9CKwkHFxsYdT71LcWa0zUVjG6iYfr9mHiwsIaG3c1goFiVURUPz6KFTIhtywndse00XaOkH7ftXPf82S7bNVRhPg

使用这些 header :

Content-Type:text/plain
name:sdk2.txt
Content-Length: 262144
Content-Range: bytes 0-262143/331886

HTTPS 响应:200 OK有数据:

 {
"kind": "storage#object",
"id": "MYBUCKET/sdk2.txt/1490608714382301",
"selfLink": "https://www.googleapis.com/storage/v1/b/testupload-sdk/o/sdk2.txt",
"name": "sdk2.txt",
"bucket": "MYBUCKET",
"generation": "1490608714382301",
"metageneration": "1",
"timeCreated": "2017-03-27T09:58:34.164Z",
"updated": "2017-03-27T09:58:34.164Z",
"storageClass": "MULTI_REGIONAL",
"timeStorageClassUpdated": "2017-03-27T09:58:34.164Z",
"size": "0",
"md5Hash": "1B2M2Y8AsgTpgAmY7PhCfg==",
"mediaLink": "https://www.googleapis.com/download/storage/v1/b/MYBUCKET/o/sdk2.txt?generation=1490608714382301&alt=media",
"crc32c": "AAAAAA==",
"etag": "CN33rZe29tICEAE="
}

根据documentation以上响应应为 308而不是 200 OK .

我在调用这些 API 时做错了什么?

最佳答案

第 2 步不是必需的。如果将步骤 2 替换为步骤 3,则响应将按预期返回 308 而不是 200

x-goog-resumable 仅适用于XML API,因此在使用JSON API 时应省略。

在第 1 步中,断点续传被初始化。 GCS是在初始化上传的时候生成上传ID的,所以不可能在初始化上传之前就有上传ID。

第 2 步使用 0 字节对象完成可恢复上传,因为 GCS 将其解释为要上传的数据(由于第 1 步初始化上传)。结果,第 3 步返回了第 2 步的响应。如果断点续传完成,GCS 将返回创建对象的请求的响应。

关于google-cloud-storage - 如何将文件分块上传到谷歌存储?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43043982/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com