JavaS3客户端。读取超过文件大小时的GetObject行为
我需要以块的形式从S3读取一个文件。 我正在使用以下代码:
GetObjectRequest request = new GetObjectRequest(bucketName, filePath);
rangeObjectRequest.setRange(startOffset, startOffset + length - 1);
S3Object objectPortion = s3Client.getObject(request);
S3ObjectInputStream stream = objectPortion.getObjectContent();
byte[] outputBuffer = ByteStreams.toByteArray(stream);
我想知道如果我给出的范围不在文件的范围内会发生什么情况,例如,如果文件大小为2MB,并且我将要获取的范围设置为 STARTOFSET=3MB,长度=1MB 我会得到一个异常,还是只返回一个0字节的流
我知道我可以自己检查,但我目前没有访问S3的权限
# 1 楼答案
底层API返回一个错误,因此库应该抛出一个exception和一个ErrorCode的
InvalidRange
下面是API本身对66字节对象的80-90字节请求的原始响应。为可读性而格式化的XML