All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.dslplatform.api.client.AmazonS3Repository.scala Maven / Gradle / Ivy

/*
package com.dslplatform.api.client

class AmazonS3Repository extends S3Repository {

    private s3AccessKey String;
    private s3SecretKey String;
    private executorService ExecutorService;

    private AmazonS3Client s3Client;
    private AmazonS3Client getS3Client() throws IOException {
        if(s3Client == null) {
            if(s3AccessKey == null || s3AccessKey == "")
                throw new IOException("S3 configuration is missing. Please add s3-user");
            if(s3SecretKey == null || s3SecretKey == "")
                throw new IOException("S3 configuration is missing. Please add s3-secret");
            s3Client = new AmazonS3Client(new BasicAWSCredentials(s3AccessKey, s3SecretKey));
        }
        return s3Client;
    }

    def AmazonS3Repository(
            settings ProjectSettings,
            executorService ExecutorService) {
        this.s3AccessKey = settings.get("s3-user");
        this.s3SecretKey = settings.get("s3-secret");
        this.executorService = executorService;
    }

    private void checkBucket(name String) throws IOException {
        if(name == null || name == "")
            throw new IOException("Bucket not specified. If you wish to use default bucket name, add it as s3-bucket to dsl-project.ini");
    }

    @Override
    def Future[InputStream] get(bucket String, key String) {
        return
            executorService.submit(new Callable[InputStream]() {
                @Override
                def InputStream call() throws IOException {
                    s3 S3Object = getS3Client().getObject(new GetObjectRequest(bucket, key));
                    return s3.getObjectContent();
                }
            });
    }

    @Override
    def Future upload(
            bucket String,
            key String,
            stream InputStream,
            length long,
            final Map metadata) {
        return
           executorService.submit(new Callable[Object]() {
                @Override
                def Object call() throws IOException {
                    checkBucket(bucket);
                    om ObjectMetadata = new ObjectMetadata();
                    om.setContentLength(length);
                    if(metadata != null)
                        for(final Map.Entry kv : metadata.entrySet())
                            om.addUserMetadata(kv.getKey(), kv.getValue());
                    getS3Client().putObject(new PutObjectRequest(bucket, key, stream, om));
                    return null;
                }
            });
    }

    @Override
    def Future delete(bucket String, key String) {
        return
            executorService.submit(new Callable[Object]() {
                @Override
                def Object call() throws IOException {
                    getS3Client().deleteObject(new DeleteObjectRequest(bucket, key));
                    return null;
                }
            });
    }
}
*/




© 2015 - 2025 Weber Informatics LLC | Privacy Policy