基于Java SDK的S3文件下载工作原理及实现步骤(非分片下载)
使用Java SDK从S3下载文件(关闭分片下载)
下面是亲测有效的完整操作步骤,能确保关闭分片下载完成文件获取:
第一步:获取S3对象实例
调用getObject()方法传入请求对象,这一步SDK只会发送GET请求获取响应头,不会立刻拉取文件内容:S3Object s3Object = s3.getObject(getObjectRequest);第二步:获取对象输入流
通过S3对象拿到对应的输入流,这时候还没开始读取文件内容:S3ObjectInputStream s3ObjectInputStream = s3Object.getObjectContent();第三步:将流写入本地文件
你需要自行实现流的写入逻辑,比如用FileOutputStream把s3ObjectInputStream中的数据写到本地磁盘文件里。
关键流程说明
这里要注意整个请求的运作逻辑:调用
getObject()时,SDK只会发起一个仅获取响应头的GET请求;只有当你开始读取s3ObjectInputStream的时候,才会真正拉取响应体的文件内容,整个过程属于同一个REST请求,这样就避免了分片下载的触发。
内容的提问来源于stack exchange,提问作者lostintranslation
相关产品推荐
相关产品推荐

