added replace file feature

This commit is contained in:
roberto cirillo 2020-11-10 18:09:25 +01:00
parent a63c5e1874
commit 2cb929d0f4
2 changed files with 27 additions and 5 deletions

View File

@ -28,9 +28,11 @@ import software.amazon.awssdk.services.s3.model.ListBucketsRequest;
import software.amazon.awssdk.services.s3.model.ListBucketsResponse; import software.amazon.awssdk.services.s3.model.ListBucketsResponse;
import software.amazon.awssdk.services.s3.model.ListObjectsV2Request; import software.amazon.awssdk.services.s3.model.ListObjectsV2Request;
import software.amazon.awssdk.services.s3.model.ListObjectsV2Response; import software.amazon.awssdk.services.s3.model.ListObjectsV2Response;
import software.amazon.awssdk.services.s3.model.NoSuchKeyException;
import software.amazon.awssdk.services.s3.model.PutObjectRequest; import software.amazon.awssdk.services.s3.model.PutObjectRequest;
import software.amazon.awssdk.services.s3.model.PutObjectResponse; import software.amazon.awssdk.services.s3.model.PutObjectResponse;
import software.amazon.awssdk.services.s3.model.S3Object; import software.amazon.awssdk.services.s3.model.S3Object;
import software.amazon.awssdk.services.s3.model.S3Response;
public class BucketOperator { public class BucketOperator {
@ -156,9 +158,21 @@ public class BucketOperator {
* @param bucket * @param bucket
* @param key * @param key
* @param file * @param file
* @param replace
* @return * @return
*/ */
public static PutObjectResponse putObject(String bucket, String key, File file) { public static S3Response putObject(String bucket, String key, File file, boolean replace) {
if(!replace) {
GetObjectRequest getObjectRequest = GetObjectRequest.builder()
.bucket(bucket)
.key(key)
.build();
try {
return client.getObject(getObjectRequest).response();
}catch (NoSuchKeyException e) {
}
}
PutObjectRequest objectRequest = PutObjectRequest.builder() PutObjectRequest objectRequest = PutObjectRequest.builder()
.bucket(bucket) .bucket(bucket)
.key(key) .key(key)
@ -184,13 +198,20 @@ public class BucketOperator {
return response.toString(); return response.toString();
} }
/**
* Get object length in bytes
* @param bucket
* @param key
* @return
* @throws IOException
*/
public static Long getObjectSize( String bucket, String key) public static Long getObjectSize( String bucket, String key)
throws IOException { throws IOException {
GetObjectRequest getObjectRequest = GetObjectRequest.builder() GetObjectRequest getObjectRequest = GetObjectRequest.builder()
.bucket(bucket) .bucket(bucket)
.key(key) .key(key)
.build(); .build();
return client.getObject(getObjectRequest).response().contentLength(); return client.getObject(getObjectRequest).response().contentLength();
} }

View File

@ -40,14 +40,15 @@ import com.mongodb.MongoException;
public class S3PluginManager extends TransportManager { public class S3PluginManager extends TransportManager {
Region region = Region.US_EAST_1;
final String END_POINT = "https://s3.wasabisys.com";
S3Client s3; S3Client s3;
private Logger logger = LoggerFactory.getLogger(S3PluginManager.class); private Logger logger = LoggerFactory.getLogger(S3PluginManager.class);
// THE FOLLOWING FIELDS SHOULD BE RETRIEVED FROM SERVICEENDPOINT // THE FOLLOWING FIELDS SHOULD BE RETRIEVED FROM SERVICEENDPOINT
static final String ACCESS_KEY="UXMKEBMZBDROS5K9HREG"; static final String ACCESS_KEY="UXMKEBMZBDROS5K9HREG";
static final String SECRET_ACCESS_KEY="0Mqu8gmzcZ09wuqqKZwNmuS5bYC549MlZhvfgv6W"; static final String SECRET_ACCESS_KEY="0Mqu8gmzcZ09wuqqKZwNmuS5bYC549MlZhvfgv6W";
Region region = Region.US_EAST_1;
final String END_POINT = "https://s3.wasabisys.com";
static final String bucket="gcube-home-test-access"; static final String bucket="gcube-home-test-access";
@ -87,7 +88,7 @@ public class S3PluginManager extends TransportManager {
logger.info("put method invoked "); logger.info("put method invoked ");
File file= new File(upload.getResource().getLocalPath()); File file= new File(upload.getResource().getLocalPath());
// return BucketOperator.getInstance(s3).putObject(bucket, Utils.convertToS3Format(upload.getResource().getRemotePath()), file).toString(); // return BucketOperator.getInstance(s3).putObject(bucket, Utils.convertToS3Format(upload.getResource().getRemotePath()), file).toString();
int hashcode=BucketOperator.getInstance(s3).putObject(bucket, Utils.convertToS3Format(upload.getResource().getRemotePath()), file).hashCode(); int hashcode=BucketOperator.getInstance(s3).putObject(bucket, Utils.convertToS3Format(upload.getResource().getRemotePath()), file, upload.isReplaceOption()).hashCode();
return hashcode+""; return hashcode+"";
} }