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 S3AbortableInputStream:并非所有字节都从S3ObjectInputStream读取,正在中止HTTP连接。仅读取ObjectMetadata时发出警告_Amazon Web Services_Amazon S3_Aws Sdk - Fatal编程技术网

Amazon web services S3AbortableInputStream:并非所有字节都从S3ObjectInputStream读取,正在中止HTTP连接。仅读取ObjectMetadata时发出警告

Amazon web services S3AbortableInputStream:并非所有字节都从S3ObjectInputStream读取,正在中止HTTP连接。仅读取ObjectMetadata时发出警告,amazon-web-services,amazon-s3,aws-sdk,Amazon Web Services,Amazon S3,Aws Sdk,我使用的是,它说如果\u readAllBytes()不是真的(在我的例子中,我使用S3Object只是获取用户元数据,而不是整个流内容),那么总是会有警告 问题: a) S3Object.close如何导致调用S3AbortableInputStream.close 我假设S3Object.close中的代码仅通过is.close()调用SdkFilterInputStream.close b) 当我只想使用S3Object读取元数据而不是整个对象内容时,我应该如何消除这些警告。也许可以尝试使

我使用的是
,它说如果\u readAllBytes()不是真的(在我的例子中,我使用S3Object只是获取用户元数据,而不是整个流内容),那么总是会有警告

问题

a) S3Object.close如何导致调用S3AbortableInputStream.close 我假设S3Object.close中的代码仅通过
is.close()调用
SdkFilterInputStream.close


b) 当我只想使用S3Object读取元数据而不是整个对象内容时,我应该如何消除这些警告。

也许可以尝试使用此API函数来仅检索S3对象的元数据:

ObjectMetadata getObjectMetadata(GetObjectMetadataRequest getObjectMetadataRequest)
                          throws SdkClientException,
                                 AmazonServiceException
因此,请将代码更改为:

ObjectMetadata s3ObjectMeta = null;
s3ObjectMeta = s3Client.getObjectMetadata(new GetObjectMetadataRequest(bucketName, key));
userMetadata.putAll(s3ObjectMeta.getUserMetadata());


我认为这正是我正在寻找的解决方案。我是AWS的新手,但没有任何借口,我为错过API文档感到羞愧。没有问题@ArunKumar,发生在我们当中最好的人身上。请不要忘记将此标记为已接受的答案。
ObjectMetadata getObjectMetadata(GetObjectMetadataRequest getObjectMetadataRequest)
                          throws SdkClientException,
                                 AmazonServiceException
ObjectMetadata s3ObjectMeta = null;
s3ObjectMeta = s3Client.getObjectMetadata(new GetObjectMetadataRequest(bucketName, key));
userMetadata.putAll(s3ObjectMeta.getUserMetadata());