S3 分段上传的 Google Cloud Storage 支持

use*_*983 4 file-upload google-cloud-storage aws-sdk

目前,我在“互操作模式”下使用 GCS 以使其接受 S3 API 请求。通过使用这里的官方分段上传示例(+设置适当的端点),第一次发起 POST 请求:

POST /bucket/object?uploads HTTP/1.1
Host: storage.googleapis.com
Authorization: AWS KEY:SIGNATURE
Date: Wed, 07 Jan 2015 13:34:04 GMT
User-Agent: aws-sdk-java/1.7.5 Linux/3.13.0-43-generic Java_HotSpot(TM)_64-Bit_Server_VM/24.72-b04/1.7.0_72
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Transfer-Encoding: chunked
Connection: Keep-Alive
Run Code Online (Sandbox Code Playgroud)

导致此响应:

HTTP/1.1 400 Bad Request
Content-Length: 55
Date: Wed, 07 Jan 2015 13:34:05 GMT
Server: UploadServer ("Built on Dec 19 2014 ...")
Content-Type: text/html; charset=UTF-8
Alternate-Protocol: 443:quic,p=0.02

The request's content type is not accepted on this URL.
Run Code Online (Sandbox Code Playgroud)

这可能是 AWS 客户端问题还是 GCS 不支持 S3 的分段上传?

我尝试过的大多数其他操作(下载对象、列出存储桶对象等)似乎都运行良好。

Mik*_*rtz 6

更新:自 2021 年 5 月起,Google Cloud Storage (GCS) 支持与 S3 兼容的分段上传。
https://cloud.google.com/storage/docs/multipart-uploads

配置适当的终端节点后,AWS 开发工具包将无缝运行。

GSC 不支持 S3 分段上传接口。如果您想执行块并行上传,可以使用对象组合 - 请参阅https://cloud.google.com/storage/docs/composite-objects


小智 6

Google Cloud Storage (GCS)现在支持 S3 样式的分段上传 API。因此,像这个问题中的用例应该可以正常工作。