Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何使用“将对象上载到AWS S3”;传输编码:分块; < >我使用C++的AWSSDK将数据上传到S3桶。我正在使用类Aws::S3::S3Client的方法PutObject()上传数据_Amazon Web Services_Amazon S3 - Fatal编程技术网

Amazon web services 如何使用“将对象上载到AWS S3”;传输编码:分块; < >我使用C++的AWSSDK将数据上传到S3桶。我正在使用类Aws::S3::S3Client的方法PutObject()上传数据

Amazon web services 如何使用“将对象上载到AWS S3”;传输编码:分块; < >我使用C++的AWSSDK将数据上传到S3桶。我正在使用类Aws::S3::S3Client的方法PutObject()上传数据,amazon-web-services,amazon-s3,Amazon Web Services,Amazon S3,然而,在上传数据之前,我需要知道我上传的数据的内容长度。我需要在请求中设置内容长度(请求类型为Aws::S3::Model::PutObjectRequest)。或者,awssdk库将尝试自行确定主体的大小(awssdk通过查找有效负载数据的末尾来读取其大小) 无论如何,在我的情况下,我还不知道我上传的数据的内容长度。我正在一台压缩数据的服务器上工作。我必须等待压缩结束,才能知道压缩数据的最终大小。我不想再等了。相反,我希望在生成压缩数据时开始上传到S3。可以做到的方法是在向S3服务器发送HTT

然而,在上传数据之前,我需要知道我上传的数据的内容长度。我需要在请求中设置内容长度(请求类型为
Aws::S3::Model::PutObjectRequest
)。或者,awssdk库将尝试自行确定主体的大小(awssdk通过查找有效负载数据的末尾来读取其大小)

无论如何,在我的情况下,我还不知道我上传的数据的内容长度。我正在一台压缩数据的服务器上工作。我必须等待压缩结束,才能知道压缩数据的最终大小。我不想再等了。相反,我希望在生成压缩数据时开始上传到S3。可以做到的方法是在向S3服务器发送HTTP post请求时使用“传输编码:分块”

是否有方法使用Aws::S3::S3Client上传带有“传输编码:分块”的数据*

<>我下载了AWSSDK的C++源代码,我修改了一点,强制发送HTTP请求中的“传输编码:块”。但是S3服务器返回HTTP错误代码501:

<?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>

您需要查看多部分上传。我还没有使用C++ SDK,所以不能给你更多的信息。看起来是的,只有缓冲+多部分在这个例子中会起作用。