Skip to content

Commit

Permalink
fix(s3-da): fix #374. Downloading files from S3. (#381)
Browse files Browse the repository at this point in the history
  • Loading branch information
gabheadz authored Jul 27, 2023
1 parent aa4b738 commit 51d402d
Show file tree
Hide file tree
Showing 4 changed files with 17 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,10 @@ import software.amazon.awssdk.services.s3.S3AsyncClient;
import software.amazon.awssdk.services.s3.model.*;
import software.amazon.awssdk.core.async.AsyncRequestBody;
import software.amazon.awssdk.core.async.AsyncResponseTransformer;

import reactor.core.publisher.Mono;
import java.io.File;
import java.io.InputStream;
import java.nio.ByteBuffer;
import java.util.List;
import reactor.core.publisher.Mono;

@Component
{{#lombok}}
Expand Down Expand Up @@ -58,12 +57,12 @@ public class S3Operations {
.map(ListObjectsResponse::contents);
}

public Mono<InputStream> getObject(String bucketName,String objectKey) {
public Flux<ByteBuffer> getObject(String bucketName,String objectKey) {
return Mono.fromFuture(s3AsyncClient.getObject(GetObjectRequest.builder()
.key(objectKey)
.bucket(bucketName)
.build(), AsyncResponseTransformer.toBytes()))
.map(BytesWrapper::asInputStream);
.build(), AsyncResponseTransformer.toPublisher()))
.flatMapMany(Flux::from)
}

public Mono<Boolean> deleteObject(String bucketName,String objectKey) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,15 @@ package {{package}}.s3.operations

import org.springframework.stereotype.Component
import reactor.core.publisher.Mono
import reactor.core.publisher.Flux
import software.amazon.awssdk.core.ResponseBytes
import software.amazon.awssdk.core.async.AsyncRequestBody
import software.amazon.awssdk.core.async.AsyncResponseTransformer
import software.amazon.awssdk.core.async.ResponsePublisher
import software.amazon.awssdk.services.s3.S3AsyncClient
import software.amazon.awssdk.services.s3.model.*
import java.io.File
import java.io.InputStream

import java.nio.ByteBuffer

@Component
class S3Operations(private val s3AsyncClient: S3AsyncClient) {
Expand Down Expand Up @@ -64,16 +65,15 @@ class S3Operations(private val s3AsyncClient: S3AsyncClient) {
).map { response: ListObjectsResponse -> response.contents() }
}

fun getObject(bucketName: String?, objectKey: String?): Mono<InputStream> {
fun getObject(bucketName: String?, objectKey: String?): Flux<ByteBuffer> {
return Mono.fromFuture(
s3AsyncClient.getObject(
GetObjectRequest.builder()
.key(objectKey)
.bucket(bucketName)
.build(), AsyncResponseTransformer.toBytes()
)
.build(), AsyncResponseTransformer.toPublisher()
).flatMapMany(response: ResponsePublisher<GetObjectResponse> -> Flux.from(response))
)
.map { response: ResponseBytes<GetObjectResponse> -> response.asInputStream() }
}

fun deleteObject(bucketName: String?, objectKey: String?): Mono<Boolean> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import org.springframework.stereotype.Component;
import lombok.AllArgsConstructor;
{{/lombok}}
import software.amazon.awssdk.core.sync.RequestBody;
import software.amazon.awssdk.core.sync.ResponseTransformer;
import software.amazon.awssdk.services.s3.S3Client;
import software.amazon.awssdk.services.s3.model.*;

Expand Down Expand Up @@ -49,10 +50,10 @@ public class S3Operations {
}

public InputStream getObject(String bucketName, String objectKey) {
return s3Client.getObjectAsBytes(GetObjectRequest.builder()
return s3Client.getObject(GetObjectRequest.builder()
.key(objectKey)
.bucket(bucketName)
.build()).asInputStream();
.build(), ResponseTransformer.toInputStream());
}

public boolean deleteObject(String bucketName, String objectKey) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package {{package}}.s3.operations

import org.springframework.stereotype.Component
import software.amazon.awssdk.core.sync.RequestBody
import software.amazon.awssdk.core.sync.ResponseTransformer;
import software.amazon.awssdk.services.s3.S3Client
import software.amazon.awssdk.services.s3.model.*
import java.io.File
Expand Down Expand Up @@ -42,12 +43,11 @@ class S3Operations(private val s3Client: S3Client) {
}

fun getObject(bucketName: String?, objectKey: String?): InputStream {
return s3Client.getObjectAsBytes(
return s3Client.getObject(
GetObjectRequest.builder()
.key(objectKey)
.bucket(bucketName)
.build()
).asInputStream()
.build(), ResponseTransformer.toInputStream())
}

fun deleteObject(bucketName: String?, objectKey: String?): Boolean {
Expand Down

0 comments on commit 51d402d

Please sign in to comment.