Example usage for com.amazonaws.services.s3.model PutObjectRequest PutObjectRequest

List of usage examples for com.amazonaws.services.s3.model PutObjectRequest PutObjectRequest

Introduction

In this page you can find the example usage for com.amazonaws.services.s3.model PutObjectRequest PutObjectRequest.

Prototype

public PutObjectRequest(String bucketName, String key, InputStream input, ObjectMetadata metadata) 

Source Link

Document

Constructs a new PutObjectRequest object to upload a stream of data to the specified bucket and key.

Usage

From source file:com.streamsets.pipeline.stage.destination.s3.FileHelper.java

License:Apache License

Upload doUpload(String bucket, String fileName, InputStream is, ObjectMetadata metadata) {
    final PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, fileName, is, metadata);
    final String object = bucket + s3TargetConfigBean.s3Config.delimiter + fileName;
    Upload upload = transferManager.upload(putObjectRequest);
    upload.addProgressListener((ProgressListener) progressEvent -> {
        switch (progressEvent.getEventType()) {
        case TRANSFER_STARTED_EVENT:
            LOG.debug("Started uploading object {} into Amazon S3", object);
            break;
        case TRANSFER_COMPLETED_EVENT:
            LOG.debug("Completed uploading object {} into Amazon S3", object);
            break;
        case TRANSFER_FAILED_EVENT:
            LOG.debug("Failed uploading object {} into Amazon S3", object);
            break;
        default:/*from   w w  w  . j  av  a  2  s. c  om*/
            break;
        }
    });
    return upload;
}

From source file:com.tfnsnproject.util.S3StorageManager.java

License:Open Source License

/**
 * Stores a given item on S3//from w w  w  .j a  v a2  s . c  om
 *
 * @param obj               the data to be stored
 * @param reducedRedundancy whether or not to use reduced redundancy storage
 * @param acl               a canned access control list indicating what permissions to store this object with (can be null to leave it set to default)
 */
public void store(S3StorageObject obj, boolean reducedRedundancy, CannedAccessControlList acl) {
    // Make sure the bucket exists before we try to use it
    checkForAndCreateBucket(obj.getBucketName());

    ObjectMetadata omd = new ObjectMetadata();
    omd.setContentType(obj.getMimeType());
    omd.setContentLength(obj.getData().length);

    ByteArrayInputStream is = new ByteArrayInputStream(obj.getData());
    PutObjectRequest request = new PutObjectRequest(obj.getBucketName(), obj.getStoragePath(), is, omd);

    // Check if reduced redundancy is enabled
    if (reducedRedundancy) {
        request.setStorageClass(StorageClass.ReducedRedundancy);
    }

    s3client.putObject(request);

    // If we have an ACL set access permissions for the the data on S3
    if (acl != null) {
        s3client.setObjectAcl(obj.getBucketName(), obj.getStoragePath(), acl);
    }

}

From source file:com.tracermedia.maven.plugins.CreateVersionMojo.java

License:Open Source License

protected void copyFileToS3(final String s3Bucket, final String s3Key, final File file) throws IOException {

    final ObjectMetadata meta = new ObjectMetadata();

    InputStream in = new FileInputStream(file);
    try {/* w ww .  jav a 2 s.c  o  m*/
        meta.setContentLength(file.length());
        meta.setContentType(Mimetypes.getInstance().getMimetype(file));
    } finally {
        in.close();
    }

    in = new ProgressReportingInputStream(new RepeatableFileInputStream(file), new ProgressListener() {
        int lastPercent = -1;
        int bytes = 0;

        public void progressChanged(ProgressEvent progressEvent) {
            bytes += progressEvent.getBytesTransfered();
            double percent = 100.0 * bytes / meta.getContentLength();
            if ((int) percent != lastPercent) {
                System.out.print(
                        String.format("\rCopying file [%s] to S3, bucket: %s, key: %s, progress: %.0f%%   ",
                                file.getName(), s3Bucket, s3Key, percent));
                lastPercent = (int) percent;
            }
        }
    });

    try {
        final PutObjectRequest request = new PutObjectRequest(s3Bucket, s3Key, in, meta);
        getS3Client().putObject(request);
        System.out.println(String.format("\rCopying file [%s] to S3, bucket: %s, key: %s, progress: %.0f%%   ",
                file.getName(), s3Bucket, s3Key, 100.0));
    } finally {
        in.close();
    }
}

From source file:com.universal.storage.UniversalS3Storage.java

License:Open Source License

/**
 * This method creates a new folder within the storage using the passed path. If the new folder name already
 * exists within the storage, this  process will skip the creation step.
 * //w  w w .  j  a v a 2  s.  co  m
 * Root = /s3storage/
 * path = /myFolder
 * Target = /s3storage/myFolder
 * 
 * Root = /s3storage/
 * path = /folders/myFolder
 * Target = /s3storage/folders/myFolder
 * 
 * @param path is the folder's path.  A path must end with forward slash '/', the back slash '\' is not 
 *        considered a folder indicator.
 * @param storeFiles is a flag to store the files after folder creation.
 * 
 * @throws UniversalIOException when a specific IO error occurs.
 * @throws IllegalArgumentException is path has an invalid value.
 */
void createFolder(String path) throws UniversalIOException {
    PathValidator.validatePath(path);

    if ("".equals(path.trim())) {
        UniversalIOException error = new UniversalIOException("Invalid path.  The path shouldn't be empty.");
        this.triggerOnErrorListeners(error);
        throw error;
    }

    ObjectMetadata metadata = new ObjectMetadata();
    metadata.setContentLength(0);

    InputStream emptyContent = new ByteArrayInputStream(new byte[0]);

    try {
        PutObjectRequest putObjectRequest = new PutObjectRequest(this.settings.getRoot(),
                path.endsWith("/") ? path : (path + "/"), emptyContent, metadata);

        this.triggerOnCreateFolderListeners();

        PutObjectResult result = s3client.putObject(putObjectRequest);

        this.triggerOnFolderCreatedListeners(new UniversalStorageData(path,
                PREFIX_S3_URL + (this.settings.getRoot() + ("".equals(path) ? "" : ("/" + path))),
                result.getVersionId(), this.settings.getRoot() + ("".equals(path) ? "" : ("/" + path))));
    } catch (Exception e) {
        UniversalIOException error = new UniversalIOException(e.getMessage());
        this.triggerOnErrorListeners(error);
        throw error;
    }
}

From source file:com.upplication.s3fs.S3OutputStream.java

License:Open Source License

/**
 * Stores the given buffer using a single-part upload process
 *
 * @param contentLength//from   w  w  w.  ja  v  a2 s. co  m
 * @param content
 * @throws IOException
 */
private void putObject(final InputStream content, final long contentLength, byte[] checksum)
        throws IOException {

    final ObjectMetadata meta = metadata.clone();
    meta.setContentLength(contentLength);
    meta.setContentMD5(Base64.encodeAsString(checksum));

    final PutObjectRequest request = new PutObjectRequest(objectId.getBucket(), objectId.getKey(), content,
            meta);

    if (storageClass != null) {
        request.setStorageClass(storageClass);
    }

    try {
        s3.putObject(request);
    } catch (final AmazonClientException e) {
        throw new IOException("Failed to put data into Amazon S3 object", e);
    }
}

From source file:com.vanilla.transmilenio.servicio.AmazonServicio.java

public String guardarArchivo(InputStream input, String nombreArchivo) {
    PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, nombreArchivo, input,
            new ObjectMetadata());
    putObjectRequest.withCannedAcl(CannedAccessControlList.PublicRead);
    s3client.putObject(putObjectRequest);
    String url = "https://s3.amazonaws.com/" + bucketName + "/" + nombreArchivo;
    return url;/*from   w ww. j a  v a 2  s.  c om*/
}

From source file:com.yahoo.ycsb.db.S3Client.java

License:Open Source License

/**
* Upload a new object to S3 or update an object on S3.
*
* @param bucket//from ww w. j a va 2  s.  c  om
*            The name of the bucket
* @param key
*            The file key of the object to upload/update.
* @param values
*            The data to be written on the object
* @param updateMarker
*            A boolean value. If true a new object will be uploaded
*            to S3. If false an existing object will be re-uploaded
*
*/
protected Status writeToStorage(String bucket, String key, HashMap<String, ByteIterator> values,
        Boolean updateMarker, String sseLocal, SSECustomerKey ssecLocal) {
    int totalSize = 0;
    int fieldCount = values.size(); //number of fields to concatenate
    // getting the first field in the values
    Object keyToSearch = values.keySet().toArray()[0];
    // getting the content of just one field
    byte[] sourceArray = values.get(keyToSearch).toArray();
    int sizeArray = sourceArray.length; //size of each array
    if (updateMarker) {
        totalSize = sizeArray * fieldCount;
    } else {
        try {
            Map.Entry<S3Object, ObjectMetadata> objectAndMetadata = getS3ObjectAndMetadata(bucket, key,
                    ssecLocal);
            int sizeOfFile = (int) objectAndMetadata.getValue().getContentLength();
            fieldCount = sizeOfFile / sizeArray;
            totalSize = sizeOfFile;
            objectAndMetadata.getKey().close();
        } catch (Exception e) {
            System.err.println("Not possible to get the object :" + key);
            e.printStackTrace();
            return Status.ERROR;
        }
    }
    byte[] destinationArray = new byte[totalSize];
    int offset = 0;
    for (int i = 0; i < fieldCount; i++) {
        System.arraycopy(sourceArray, 0, destinationArray, offset, sizeArray);
        offset += sizeArray;
    }
    try (InputStream input = new ByteArrayInputStream(destinationArray)) {
        ObjectMetadata metadata = new ObjectMetadata();
        metadata.setContentLength(totalSize);
        PutObjectRequest putObjectRequest = null;
        if (sseLocal.equals("true")) {
            metadata.setSSEAlgorithm(ObjectMetadata.AES_256_SERVER_SIDE_ENCRYPTION);
            putObjectRequest = new PutObjectRequest(bucket, key, input, metadata);
        } else if (ssecLocal != null) {
            putObjectRequest = new PutObjectRequest(bucket, key, input, metadata).withSSECustomerKey(ssecLocal);
        } else {
            putObjectRequest = new PutObjectRequest(bucket, key, input, metadata);
        }

        try {
            PutObjectResult res = s3Client.putObject(putObjectRequest);
            if (res.getETag() == null) {
                return Status.ERROR;
            } else {
                if (sseLocal.equals("true")) {
                    System.out.println("Uploaded object encryption status is " + res.getSSEAlgorithm());
                } else if (ssecLocal != null) {
                    System.out.println("Uploaded object encryption status is " + res.getSSEAlgorithm());
                }
            }
        } catch (Exception e) {
            System.err.println("Not possible to write object :" + key);
            e.printStackTrace();
            return Status.ERROR;
        }
    } catch (Exception e) {
        System.err.println("Error in the creation of the stream :" + e.toString());
        e.printStackTrace();
        return Status.ERROR;
    }

    return Status.OK;
}

From source file:com.yahoo.ycsb.utils.connection.S3Connection.java

License:Open Source License

public Status insert(String key, byte[] bytes) {
    try (InputStream input = new ByteArrayInputStream(bytes)) {
        ObjectMetadata metadata = new ObjectMetadata();
        metadata.setContentLength(bytes.length);
        PutObjectRequest putObjectRequest = null;
        if (ssecKey != null) {
            if (ssecKey.equals("true")) {
                metadata.setSSEAlgorithm(ObjectMetadata.AES_256_SERVER_SIDE_ENCRYPTION);
                putObjectRequest = new PutObjectRequest(bucket, key, input, metadata);
            } else {
                putObjectRequest = new PutObjectRequest(bucket, key, input, metadata)
                        .withSSECustomerKey(ssecKey);
            }//from w  w w. j a v  a  2s. c o m
        } else {
            putObjectRequest = new PutObjectRequest(bucket, key, input, metadata);
        }

        try {
            PutObjectResult res = awsClient.putObject(putObjectRequest);
            if (res.getETag() == null) {
                return Status.ERROR;
            } else {
                if (ssecKey != null) {
                    if (ssecKey.equals("true")) {
                        logger.debug("Uploaded object encryption status is " + res.getSSEAlgorithm());
                    } else {
                        logger.debug("Uploaded object encryption status is " + res.getSSEAlgorithm());
                    }
                }
            }
        } catch (Exception e) {
            logger.error("Not possible to write object :" + key);
            System.err.println("Retrying " + key);
            insert(key, bytes);
        }
    } catch (Exception e) {
        logger.error("Error in the creation of the stream :" + e.toString());
        System.err.println("Retrying " + key);
        insert(key, bytes);
        //e.printStackTrace();
        //return Status.ERROR;
    }
    return Status.OK;
}

From source file:com.zero_x_baadf00d.play.module.aws.s3.ebean.BaseS3FileModel.java

License:Open Source License

/**
 * Save the current object. The file will be uploaded to PlayS3 bucket.
 *
 * @since 16.03.13/*from  w w  w  .j  a  va2  s . com*/
 */
@Override
public void save() {
    if (this.id == null) {
        this.id = Generators.timeBasedGenerator().generate();
    }
    if (!PlayS3.isReady()) {
        Logger.error("Could not save PlayS3 file because amazonS3 variable is null");
        throw new RuntimeException("Could not save");
    } else {
        this.bucket = PlayS3.getBucketName();
        if (this.subDirectory == null) {
            this.subDirectory = "";
        }
        this.subDirectory = this.subDirectory.trim();

        // Set cache control and server side encryption
        final ObjectMetadata objMetaData = new ObjectMetadata();
        objMetaData.setContentType(this.contentType);
        objMetaData.setCacheControl("max-age=315360000, public");
        objMetaData.setSSEAlgorithm(ObjectMetadata.AES_256_SERVER_SIDE_ENCRYPTION);
        try {
            objMetaData.setContentLength(this.objectData.available());
        } catch (final IOException ex) {
            Logger.warn("Can't retrieve stream available size", ex);
        } finally {
            try {
                if (this.objectData.markSupported()) {
                    this.objectData.reset();
                }
            } catch (final IOException ex) {
                Logger.error("Can't reset stream position", ex);
            }
        }

        // Upload file to PlayS3
        final PutObjectRequest putObjectRequest = new PutObjectRequest(this.bucket, this.getActualFileName(),
                this.objectData, objMetaData);
        putObjectRequest.withCannedAcl(
                this.isPrivate ? CannedAccessControlList.Private : CannedAccessControlList.PublicRead);

        PlayS3.getAmazonS3().putObject(putObjectRequest);
        try {
            if (this.objectData != null) {
                this.objectData.close();
            }
        } catch (final IOException ignore) {
        }

        // Save object on database
        super.save();
    }
}

From source file:ConnectionUtils.AWSS3Utils.java

public static String saveImage(String bucketName, ImageDTO imageDTO) {
    InputStream imageIS = null;/*w ww  .  ja  va2  s.c  om*/
    Properties awsCredentialsProperties = new Properties();

    try {
        awsCredentialsProperties
                .load(AWSS3Utils.class.getClassLoader().getResourceAsStream("prefs.properties"));
    } catch (Exception ex) {
        Logger.getLogger(AWSS3Utils.class.getName()).log(Level.SEVERE, null, ex);

    }

    String awsAccessKey = awsCredentialsProperties.getProperty("AWSACCESSKEY");
    String awsSecretKey = awsCredentialsProperties.getProperty("SECRETACCESSKEY");

    try {
        //       AccessControlList accessControlList = new AccessControlList();
        //       accessControlList.grantPermission(GroupGrantee.AllUsers, Permission.FullControl);

        BasicAWSCredentials awsCredentials = new BasicAWSCredentials(awsAccessKey, awsSecretKey);

        AmazonS3 s3Client = new AmazonS3Client(awsCredentials);

        ObjectMetadata objectMetadata = new ObjectMetadata();

        imageIS = imageDTO.getImageBlob();
        PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, imageDTO.getIID() + ".jpg",
                imageIS, objectMetadata);
        s3Client.putObject(putObjectRequest);//.withAccessControlList(accessControlList));

        imageIS = imageDTO.getThumbnailBlob();
        putObjectRequest = new PutObjectRequest(bucketName,
                imageDTO.getIID() + "_" + IMAGE_TYPE.THUMB.toString() + ".jpg", imageIS, objectMetadata);
        s3Client.putObject(putObjectRequest);//.withAccessControlList(accessControlList));

        return ("Image Saved");
    } catch (Exception ex) {
        Logger.getLogger(AWSS3Utils.class.getName()).log(Level.SEVERE, null, ex);
        return "Image Not Saved";
    } finally {
        try {
            if (imageIS != null) {
                imageIS.close();
            }
        } catch (IOException ex) {
            Logger.getLogger(AWSS3Utils.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
}