【发布时间】:2021-06-15 04:37:57
【问题描述】:
我正在编写一个代码,该代码将从 URL 下载文件并将其上传到 S3,但我不希望它临时存储在文件或内存中,我正在通过“InputStream”下载,但 AWS s3 需要该文件我从“InputStream”中没有的大小还有其他方法。 I found the this discussion on same topic using 'Node.js'
我在 inputStream 中获取文件的代码
HttpClient client = HttpClient.newBuilder().build();
URI uri = URI.create("{myUrl}");
HttpRequest request = HttpRequest.newBuilder().uri(uri).build();
InputStream is = client.send(request, HttpResponse.BodyHandlers.ofInputStream()).body();
我尝试插入 S3 的代码,但我没有 content_length
S3Client s3Client = S3Client.builder().build();
PutObjectRequest objectRequest = PutObjectRequest.builder()
.bucket(BUCKET_NAME)
.key(KEY)
.build();
PutObjectResponse por = s3Client.putObject(objectRequest, RequestBody.fromInputStream(is,content_length));
【问题讨论】:
-
我不知道是否相关,但是使用'S3AsyncClient' for 'AsyncRequestBody' 没有方法'fromInputStream()',我没有找到原因?
标签: java amazon-web-services amazon-s3 aws-sdk inputstream