Ric*_*rdT 7 amazon-s3 amazon-web-services
我正在使用 c++ 的 awssdk 将数据上传到 S3 存储桶。PutObject()我正在使用类的方法Aws::S3::S3Client来上传数据。
但是,在上传数据之前,我需要知道我正在上传的数据的内容长度。我需要在请求中设置内容长度(请求的类型为Aws::S3::Model::PutObjectRequest)。或者 awssdk 库将尝试自行确定主体的大小(awssdk 通过查找有效负载数据的末尾来读取其大小来实现这一点)。
不管怎样,就我而言,我还不知道我正在上传的数据的内容长度。我正在开发一个压缩数据的服务器。我必须等待压缩结束才能知道压缩数据的最终大小。我不想等那个。相反,我想在生成压缩数据时开始上传到 S3。可以做到的方法是在向 S3 服务器发送 HTTP post 请求时使用“Transfer-Encoding: chunked”。
有没有办法使用Aws::S3::S3Client“Transfer-Encoding: chunked”上传数据?*
我已经下载了 c++ 的 awssdk 源代码,我对其进行了一些调整以强制在 http 请求中发送“Transfer-Encoding: chunked”。但S3服务器返回HTTP错误代码501 NotImplemented:
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>NotImplemented</Code>
<Message>A header you provided implies functionality that is not implemented</Message>
<Header>Transfer-Encoding</Header>
<RequestId>8F55B09D484DD66C</RequestId>
<HostId>gZk6zaPcObsTfclz0zXvKGtPT5udzDKigIrm7laD3csG30vhx3pa0eFFS8nh6t9k7XkDeJRm9Z4=</HostId>
</Error>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4285 次 |
| 最近记录: |